javascript中原型的使用(与构造方法比较以及使用方法)

时间:2018-12-27 10:51:00

标签: javascript

为什么我应该使用原型是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

1 个答案:

答案 0 :(得分:2)

Prototype属性在构造函数的所有实例之间共享。

对于您而言,calculateAge函数不需要作为您从Person中创建的所有对象的单独实例,因此可以移至Prototype,而name之类的属性和yearOfBirth对于从Person创建的每个对象都需要一个单独的实例

当您希望创建在函数的所有实例之间共享的通用属性时,可以在构造函数上定义Prototypes属性。