基础知识5--原型链

原型链
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();
    1. Object.create()
    • var P = {name: 'O3'};
      var O3 = Object.create(P)//用原型链连接
面向对象的实现方法
原型,构造函数,实例,原型链

Paste_Image.png

原型链的顶端:object.prototype
原型链:任何一个实例对象通过原型链找到原型对象(方法和属性被实例共享),按JS引擎,在实例上没找到方法和属性,就通过_ proto _往上找原型对象,找不到再继续往上...

instanceof

Paste_Image.png

instanceof判断实例对象的_ proto _属性和构造函数的prototype属性是否为同一个引用
constructor比instanceof更严谨

new运算符
Paste_Image.png

模拟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是构造函数
Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (开头都是大写字母--构造函数的名字也要求开头大写)Object对象Array对象包装对象和Boolean对象Nu...
    明城北住院医阅读 309评论 0 0
  • 原型 prototype (原型)属性每个函数都有一个prototype属性,这个属性指向一个对象,这个对象就是原...
    LeoCong阅读 389评论 0 1
  • ECMAScript关键字 delete do else finally function in instance...
    doudou2阅读 726评论 0 0
  • 构造函数的缺点JavaScript通过构造函数生成新对象,因此构造函数可以视为对象的模板 实例对象的属性和方法,可...
    明城北住院医阅读 180评论 0 0
  • 开学不足月却不知为何身心俱疲。 好像面临越来越多的选择,但我总是畏头缩脑不知如何。好像那些没有经过深思熟虑的决定现...
    lustre19阅读 213评论 0 0