function Animal() {
// do something
}
Animal.prototype.walk = function() {
alert('I am walking.');
};
和子类class:
function Lion() {
// do something
}
如果我想让
Lion
继承 Animal
的原型,常见的做法是这样的:Lion.prototype = new Animal();
// Set the constructor to Lion, because now it points to Animal
Lion.prototype.constructor = Lion;
这是否与此有任何不同(作为结果而非性能)?
$.extend(Lion.prototype, Animal.prototype);
对于非jQuery开发人员:
$.extend
会逐个从Animal复制所有原型方法和属性到Lion。我不是JavaScript继承方面的大牛。我通常在前端开发中使用MVC框架,一切都很顺利,但现在我也想了解原型继承如何工作。
注意! 我阅读了许多关于这个主题的文章,我知道有许多"插件"实现了Class功能。这不是我需要的。请回答问题,而不仅仅是链接相关文章(除非那篇文章能回答我的问题)。
谢谢!
Object.create
,但有一个区别-newObj = Object.create(oldObj)
使oldObj
成为newObj
的__proto__
。 - Om Shankar