【发布时间】:2012-08-31 21:01:32
【问题描述】:
我正在尝试理解 JavaScript 中的继承。我正在使用原型将子类链接到它的父类。但只要我定义了关系,父类的构造函数就会开始运行。
<script type="text/javascript">
function Person ()
{
window.alert('We\'ve got a new person!');
}
function King ()
{
window.alert('We\'ve got a new king!');
}
King.prototype = new Person();
//King.prototype.constructor = King;
//var erik = new King();
</script>
在 JavaScript 中使用继承的正确方法是什么?
引发困惑的教程:https://developer.mozilla.org/en-US/docs/JavaScript/Introduction_to_Object-Oriented_JavaScript
【问题讨论】:
-
“但是一旦我定义了关系,父类的构造函数就开始运行了。” 那么,当你写
new Person()时你期望发生什么?我认为这里没有问题。[works-as-designed] -
给未来的读者;下面的文字让我理解了 JavaScript 中继承背后的思想: --- 即使它被用作原型,父对象仍然可以作为常规对象进行操作。这是原型与类的主要区别。 --- JavaScript 中的所有对象都可以在运行时进行修改。由于原型对象也是常规对象,我们也可以修改它们。但是,当您修改原型对象时,其更改也会反映到其所有后代对象。
标签: javascript oop inheritance