为什么我应该使用原型是js?
例如,如果我想创建一个构造函数,例如:
var Person = function(name, yearOfBirth){
this.name = name;
this.yearOfBirth = yearOfBirth;
this.calculateAge = function(){
console.log(2018-this.yearOfBirth);
}
}
最好将原型用于以下功能:
var Person = function(name, yearOfBirth){
this.name = name;
this.yearOfBirth = yearOfBirth;
}
Person.prototype.calculateAge = function(){
console.log(2018-this.yearOfBirth);
}
我还应该将原型也用于名称等道具吗?
有人可以告诉我使用原型与不使用原型之间的区别吗?它的最佳用途是什么?
谢谢
编辑:这是我找到的最佳答案:https://hackernoon.com/prototypes-in-javascript-5bba2990e04b
答案 0 :(得分:2)
Prototype
属性在构造函数的所有实例之间共享。
对于您而言,calculateAge
函数不需要作为您从Person中创建的所有对象的单独实例,因此可以移至Prototype
,而name
之类的属性和yearOfBirth
对于从Person
创建的每个对象都需要一个单独的实例
当您希望创建在函数的所有实例之间共享的通用属性时,可以在构造函数上定义Prototypes属性。