如果你有一个像
这样的构造函数var SomeClass = function(){
this.a= "";
this.b= "";
}
然后假设您使用原型(prototype)添加另一个方法
SomeClass.prototype.fn = function fn(){
console.log(this.a);
};
为什么要使用 prototype
,你可以将这个方法添加到你的构造函数中
功能?
最佳答案
有几个好处:
它创建一个
fn
函数,由使用该构造函数创建的所有对象重用;这比每个对象上的单独函数更节省内存。让对象保持与其原型(prototype)的动态链接意味着当您向原型(prototype)添加方法时,它们可用于已经存在的对象。
只有一个函数所有相关对象重用意味着您可以在必要时更新该函数在运行时,只在一个地方,并使用更新后的函数由所有相关对象,甚至是已经存在的对象。
在构造函数的
prototype
属性上提供它意味着它可以用于其他对象,而不是通过构造函数创建;这个经常用,效果不错,比如:Array.prototype.forEach.call( document.querySelectorAll("div"), function(div) { // ... } );
关于javascript - 创建构造函数后使用原型(prototype)有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38916200/