前端开发那些事儿

对象的创建方式及new关键字

2020-08-04  本文已影响0人  深度剖析JavaScript

对象的创建方式

  1. 对象字面量
var obj={
 //code...
}
  1. 构造函数

构造函数与普通函数一模一样,为了好维护、好阅读,构造函数首字母大写。
有了构造函数,通过new关键字即可生产出对象

function Student(name,age){
  this.name = name;
  this.age = age;
}
var alice = new("Alice",18);

构造函数内部原理(前提加了new关键字)
(1)隐式创建this对象;在函数体最前面隐式的加上this = {}
(2)执行this.xxx = xxx;
(3)隐式的返回this对象。
备注:其实隐式创建的this对象并不是空对象,它里面上来就有一个属性__proto__值为Xxx.prototype,即:

{
  __proto__ : Student.prototype;
}

意思是,对象生成的时候,会存在一个属性__proto__指向自己的原型。当对象找对应的属性的值时,先看看自己有没有,没有的话就去沿着__proto__指向的原型中查找。所以alice.__proto__=== Student.prototype是绝对的。

其实还存在第三种创建对象的方式,通过Object.creat(原型),传入的可以是一个对象也可以是null,传入null时,创建的对象没有原型。

var obj = Object.creat(null);
上一篇 下一篇

猜你喜欢

热点阅读