先上一段代码:
function Person(name,age,job) { this.name=name; this.age=age; this.job=job; this.sayName=function() { alert(this.name); }; } var person = new Person("zhangamie",21,"student"); person.sayName(); // "zhangamie" Person("david",21,"student"); window.sayName(); // "david"
其实从上面的代码已经很明确知道new关键字究竟做了什么了:
1)创建一个object对象
2)把object对象Person函数的作用域
3)执行Person函数
4)返回执行Person函数后的这个object对象
很神奇的是
person instanceof Object; //true person instanceof Person; //true
因为每个对象都有一个叫做constructor的属性,这个属性就是用来标识对象类型的,上面创建出来的person对象的constructor属性就是Person,又因为在javascript里面所有对象均是继承自Object,因此person对象与属于Object。
这里可以看出,Object的类型就是其构造函数的名字。
原文:http://www.cnblogs.com/amiezhang/p/6415862.html