创建对象
- 字面量创建
var obj = {}
- Object类创建
var obj = new Object()
- 组合构造函数模式(组合构造)
function Car(color, passengers, brand){ this.color = color; this.passengers = passengers; this.brand = brand; } }
Car.prototype = {
outBrand: function () { console.log(this.brand) }
} var car1 = new Car('red', ['a','b'], 'benz'); var car2 = new Car('black', ['c','d'], 'BMW'); console.log(car1 instanceof Object); //true console.log(car1 instanceof Car); //true console.log(car2 instanceof Object); //true console.log(car2 instanceof Car); //true构造函数模式能够很好的使用 instanceof 进行对象的识别,Objcet对象是所有对象的顶层对象类,所有的对象都会继承他。对对象进行操作的各类方法就存放在Object对象里面。
这种方式,所有对象实例都可以共享原型对象上的方法,能够最大程度节省内存(即不是构造函数模式),同时也向构造函数提供了传递参数的功能(即不是原型模式)。
js继承(寄生组合继承)
function Animal(){}
Animal.prototype = {
constructor:Animal,
eat: function (){}
}
function Cat () {
Animal.call(this)//继承父类
}
Cat.prototype = Object.create(Animal.prototype)
Cat.prototype.constructor = Cat
关于原型及原型链https://i.cnblogs.com/posts/edit;postId=13442112
为个人总结,不适合未接触者看。