javascript构造函数类和原型prototype定义的属性和方法的区别

如题所述

你好,用一个简单的Demo说明你的问题
function User(name, age) {
this.name = name;
this.age = age;
}
// 在原型添加一个属性和一个获取对象name方法
User.prototype.address = "上海";
User.prototype.getName = function() {
return this.name;
};
var u1 = new User("user1", 20);
console.log(u1.getName());// 输出user1
u1.getName = function() {//u1对象重新改变getName方法,只属于u1
return this.name + "00";
}
console.log(u1.getName());// 输出user100
u1.address;// 输出上海
var u2 = new User("user2", 40);
u2.getName();// 输出user2
u2.address;// 输出上海

  总的来说,在对象原型附加的属性或者方法将成为对象实例化的一部分,类似一个父类,新创建的对象都继承了prototype的属性和方法。

  希望可以帮到你

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-28

用一个简单的Demo说明该问题:


function User(name, age) {
this.name = name;
this.age = age;
}
// 在原型添加一个属性和一个获取对象name方法
User.prototype.address = "上海";
User.prototype.getName = function() {
return this.name;
};
var u1 = new User("user1", 20);
console.log(u1.getName());// 输出user1
u1.getName = function() {//u1对象重新改变getName方法,只属于u1
return this.name + "00";
}
console.log(u1.getName());// 输出user100
u1.address;// 输出上海
var u2 = new User("user2", 40);
u2.getName();// 输出user2
u2.address;// 输出上海

   

  总的来说,在对象原型附加的属性或者方法将成为对象实例化的一部分,类似一个父类,新创建的对象都继承了prototype的属性和方法。

相似回答