原型链
1.创建对象的几种方法
2.面向对象的实现方法
3.原型,构造函数,实例,原型链
4.instanceof
5.new运算符
创建对象的方法
- 1.字面量对象
- var O1 = {name: 'O1'};
- var O11 = new Object( {
name: 'O11'
})
- 2.显式构造函数
- var M = function(){this.name = 'O2'}
var O22 = new M();
- var M = function(){this.name = 'O2'}
-
- Object.create()
- var P = {name: 'O3'};
var O3 = Object.create(P)//用原型链连接
面向对象的实现方法
原型,构造函数,实例,原型链
原型链的顶端:object.prototype
原型链:任何一个实例对象通过原型链找到原型对象(方法和属性被实例共享),按JS引擎,在实例上没找到方法和属性,就通过_ proto _往上找原型对象,找不到再继续往上...
instanceof
instanceof判断实例对象的_ proto _属性和构造函数的prototype属性是否为同一个引用
constructor比instanceof更严谨
new运算符
模拟new运算符
var new2 = function(func){
var o = Object.create(func.prototype);//创建空对象,并关联构造函数的prototype
var k = func.call(o);//执行构造函数
if(typeof k === 'object'){
return k;
}else{
return o;
}
}
var o3 = new2 (M);//M是构造函数