短文

从前看到new就有一种蒙圈的状态,今天学习了下,整理下new到底做了什么,看这边文章的时候需要大家对对象有初步的了解

  1. 首先我们先说说让我们困惑的prototype和__proto__
    __proto__其实每个对象里面都有这个属性,这个是指向该对象对应类的原型对象,也就是javascript所谓的原型 实例说明下

function A(name){ //构造函数
    this.name = name;
}
var Aobj = {  //对象字面量
    name:"Alice"
}
console.dir(A);
console.dir(Aobj);

短文_第1张图片
结果是这样的
构造函数A的__proto__属性指向function()
对象Aobj的__proto__属性指向Object
就像上面说的这个是指向该对象对应类的原型对象,也就是javascript所谓的原型
也就是A构造函数也是一个函数,他的__proto__就指向Function类的原型对象
Aobj是一个对象,那么他的__proto__就指向Object类的原型对象;检测代码如下

function A(name){ //构造函数
    this.name = name;
}
var Aobj = {  //对象字面量
    name:"Alice"
}
console.dir(A);
console.dir(Aobj);
console.log(A.__proto__==Function.prototype)
console.log(Aobj.__proto__==Object.prototype)

短文_第2张图片
上面两个判断都是返回的true;
那么到这里,请大家想想数组的__proto__指向什么??代码就不贴出来了;

你可能感兴趣的:(javascripthtml)