6.1 访问器属性 get 读取属性 set写入属性
6.2创建对象
6.1.工厂模式。创建一个函数,对象的属性由传参决定。
function creobj(name) {
var o = {};
o.name = name
o.sayName = function () {
console.log(this.name)
}
return o
}
var c = creobj('xiaowang')
c.sayName()
6.2 构造函数模式
function Person(name){
this.name=name
}
var person1 = new Person("Nicholas", 29, "Software Engineer");
var person2 = new Person("Greg", 27, "Doctor");
console.log(person1.constructor===person2.constructor)
person1和person2有着相同的构造函数。
6.3 原型模式
Person.prototype.name="wjy"
var person1=new Person();
console.log(1,person1.name)
6.4组合使用构造函数模式和原型模式 构造函数用于定义实例属性,原型模式用于定义方法和共享的属性。 6.25 动态原型模式。。。等等。。。。
6.3
继承-原型链
通过原型来实现继承,原型实际上是另一个类型的实例
function superType(){
this.colors=['red','yellow']
}
function subType(){
}
subType.prototype=new superType()
var instance1=new subType()
instance1.colors.push('black')
构造函数继承
构造函数继承需要借助apply(),call()方法来在新创建的对象上执行构造函数。
function superType(){
this.colors=['red','yellow']
}
function subType(){
superType.call(this)
}
var instance2=new subType();
console.log(11,instance2.colors)构造函数继承需要借助apply(),call()方法来在新创建的对象上执行构造函数。
组合继承 原型链实现对原型属性二号方法的继承,构造函数实现对实例属性的继承。 寄生组合继承 等等。。。