Open HuangHongRui opened 6 years ago
function Person(name, age, job){
this.name = name;
this.age = age;
this.job = job;
this.sayName = function(){
alert(this.name)
}
}
new Person( 'Rui', 22, 'Web')
创建每一个函数都均有一个 原型属性(prototype),属于指针,指向一个对象。 而这个对象 用途 是 通过调用构造函数所得到的实例 的原型对象。 原型对象好处是:可让所有对象实例共享它的 属性与方法。
可以看成是一个总仓库,实例认为是每一个箱子,如果箱子里无该属性和方法,那么就到总仓库找。
缺点:
自定义类型 最常见方式——最佳配合
构造函数+原型模式(混杂模式)
构造函数:用于定义 实例属性。 原型函数:定义方法和共享属性。
其结果: 实例均拥有专属实例属性和共享原型引用——节省内存
并且支持 传参。
function Gz(name, age){
this.name = name;
this.age = age;
this.friends = ['a','b']; //引用类型数组的话,设置为实例属性不会导致混乱
}
Gz.prototype = {
constructor : Gz, //使用对象字面量定义属性,constructor会默认定义到Object,需要的话可手动定义回Gz构造函数
sayName : function() {
console.log(this.name)
}
}
Rui = new Gz('Rui',100)