gpt4 book ai didi

javascript - 继承原型(prototype)

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:34:57 25 4
gpt4 key购买 nike

拥有父:

function Animal() {
// do something
}

Animal.prototype.walk = function() {
alert('I am walking.');
};

和子:

function Lion() {
// do something
}

如果我想让Lion继承Animal的原型(prototype),一个常见的做法是:

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复制所有原型(prototype)方法和属性,从 Animal 到 Lion 一个一个。

我不是javascript继承方面的大专家。我通常使用 MVC 框架进行前端开发,一切正常,但现在我也想了解继承原型(prototype)的工作原理。

注意!我读了很多关于这个主题的文章,我知道有很多"plugins"实现了 Class 功能。这不是我需要的。请回答问题,而不仅仅是链接有关该主题的文章(除非能回答问题)。

谢谢!

最佳答案

有一个区别,复制两个原型(prototype)之间的属性不会使它们“连接”到彼此,即:

$.extend(Lion.prototype, Animal.prototype);

// add one more method to the prototype
Animal.prototype.test = function() {
alert('test');
};

var x = new Lion();
x.test(); // TypeError: Object <Lion> has no method 'test'

如果您使用 new Animal() 作为 Lion 的原型(prototype),您将不会有这个,如 here 所示.

关于javascript - 继承原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16785000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com