面向对象的程序设计(三)对象字面量创建原型方法与直接创建原型方法的区别

/*
*直接创建原型方法与对象字面量创建原型方法的区别在于
*直接创建原型方法:会在原有的原型上添加方法
*对象字面量创建原型方法:直接替换原有的原型(会切断原型链)
*/

//直接创建原型方法
function Person(name, age) {
    this.name = name;
    this.age = age;
}

Person.prototype.sayName = function (){
    alert(this.name);
}

Person.prototype.sayAge = function (){
    alert(this.age);
}

var person = new Person('Tom', 29);

person.sayName();//Tom
person.sayAge();//29

//对象字面量原型方法:直接替换原型(会切换原型链)
function Person2(name, age) {
    this.name = name;
    this.age = age;
}

Person.prototype.sayName = function (){
    alert(this.name);
}

Person.prototype = {
    sayAge: function (){
        alert(this.age);
    }
}

var person2 = new Person('Lucy', 29);

person2.sayAge();//29
person2.sayName();//error
原文地址:https://www.cnblogs.com/qiangspecial/p/3172978.html