在JS中定义一个构造函数,然后用new操作符构造对象obj,JS代码如下。
function Base(){ this.name = "swf"; this.age =20; } var obj = new Base(); console.log(obj.name); console.log(obj.age);
new操作符具体都干了什么呢?其实很简单,包括三步:
1. var obj = {}; 2. obj.__proto__ = Base.prototype; 3. Base.call(obj);
第一步,创建一个空对象;
第二步,将这个空对象的__proto__成员指向构造函数对象的prototype成员;
第三步,将构造函数对象的this指针换成obj,即在obj的作用域中调用Base函数。