gpt4 book ai didi

javascript - 扩展原型(prototype)而不是声明整个对象的优点

转载 作者:行者123 更新时间:2023-11-30 18:09:41 26 4
gpt4 key购买 nike

什么时候应该使用第一个表示法:

var object = {
a: function() {
// object.a method body
},
b: function() {
// object.b method body
},
c: function() {
// object.c method body
},
};

第二个什么时候?

function Class() {};

Class.prototype.a = function() {
// object.a method body
};

Class.prototype.b = function() {
// object.b method body
};

Class.prototype.c = function() {
// object.c method body
};

var object = new Class();

最佳答案

主要优点是在第二种情况下所有实例共享功能,这使对象更轻。它明确地将对象定义为概念上类的实例。

但是正确的语法是

function MyClass(){
}
MyClass.prototype.a = function(){
};
...
var o = new MyClass();

它还允许您定义一个继承链:

function OtherClass(){
}
OtherClass.prototype = new MyClass(); // makes OtherClass extend MyClass
OtherClass.prototype.b = function(){
};
...
var o2 = new OtherClass();

o2同时具有OtherClassMyClass的功能。

MDN 在其 Introduction to Object-Oriented JavaScript 中提供了更多详细信息.

关于javascript - 扩展原型(prototype)而不是声明整个对象的优点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14901468/

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