Appearance
组合使用构造函数和原型模式
本节目标:理解“组合使用构造函数和原型模式”的核心思路,并能把它用于实际开发或面试表达。 思路:实例差异化的同名不同值的属性,通过给构造函数传参,在构造函数中指定;实例公共的属性和方法放在构造函数的原型对象定义。
这种方式目前在ECMAScript中使用最广泛,认同度最高,是默认模式。如下:
function Person(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
this.friends = ['Shelby', 'Court'];
}
Person.prototype = {
constructor: Person,
sayName: function () {
console.log(this.name);
}
}
var person1 = new Person('Nichlas', 29, 'Software Engineer');
var person2 = new Person('Greg', 27, 'Doctor');
person1.friends.push('Van');
console.log(person1.friends);//'Shelby,Count,Van'
console.log(person2.friends);//'Shelby,Court'