示例
function Person(name, age) {
this.name = name;
this.age = age;
}
// prototype用法:所有实例对象需要共享的属性和方法定义在原型对象上
//原型对象上绑定一个方法say
Person.prototype.say = function() {
console.log("我是", this.name);
};
//原型对象上绑定一个方法sex
Person.prototype.sex = 'male';
var p = new Person("张三", 18);
p.say(); //我是张三
// 1.实例对象的constructor指向其构造函数
console.log(p.constructor === Person); //true
// 2.构造函数的prototype可以被所有实例对象调用
var p2 = new Person("李四", 20);
p2.say(); //我是李四
console.log(p.say === p2.say); //true
// 3.所有实例的sex属性和say方法都是同一个内存地址,都指向prototype对象
console.log(p.sex === p2.sex);
总结
1.实例对象的constructor指向其构造函数
2.构造函数的prototype可以被所有实例对象调用
3.所有实例的sex属性和say方法都是同一个内存地址,都指向prototype对象
prototype用法:所有实例对象需要共享的属性和方法定义在原型对象上