JS函数中的方法与它的原型有什么区别?

时间:2016-04-24 15:01:59

标签: javascript

由于以下JS类的输出相同,那么原型的特殊之处在哪里?

原型的一个特点是摆脱了重复的代码,在什么情况下这可以用原型?

1

   function Person(name) {
        this.name = name;
        this.sayName = function () {
            console.log(this.name);
        };
    }
    var person1 = new Person("Nicholas");
    person1.sayName();

2

 function Person(name) {
        this.name = name;
    }
    Person.prototype.sayName = function () {
        console.log(this.name);
    };
    var person1 = new Person("Nicholas");
    person1.sayName();

1 个答案:

答案 0 :(得分:0)

如果您使用 prototype 分配属性,那么这些属性将在类/构造函数的所有实例中共享,这些实例具有特定的< EM> prototype 的。但是在构造函数内使用this分配属性将是特定于实例的。它们无法与其他实例共享。每个实例都有自己的值。