JavaScript 创建对象

174 阅读1分钟

new 关键字创建对象

        function Person() {

    	}
    	var person = new Person()

使用关键字new创建新实例对象经过了以下几步:

1、创建一个新对象,如:var person = {};

2、新对象的_proto_属性指向构造函数的原型对象。

3、将构造函数的作用域赋值给新对象。(也所以this对象指向新对象)

4、执行构造函数内部的代码,将属性添加给person中的this对象。

5、返回新对象person。如下:

                var person = {};
 
		person._proto_ = Person.prototype; //引用构造函数的原型对象
		 
		Person.call(person); //将构造函数的作用域给person,即:this值指向person 

注意:

通过new关键字创建某构造函数的新实例对象,就是将原型链与实例的this联系起来,this指向这个新对象,同时也指向这个构造函数,并且this对象还是这个构造函数的实例。如果没有使用new操作符,直接用构造函数创建新实例对象,那么this对象就指向了window对象,不会指向这个新对象的,不管给这个新对象添加什么属性,都没有用,是直接添加到了window对象上了。