类似于工厂模式创建类,不同的地方在于 调用时采用了new 构造函数的模式。
new的作用:改变this指向,普通的函数调用,this指向window或者调用了该函数的对象; 其次,通过new后,函数返回一个this对象,即实例对象
寄生构造函数:没有使用默认的this返回值,而是重新return了一个对象, 该对象与this指向的对象不同,完全独立的。
function ClassA(name){ var obj = new Object(); obj.name = name; obj.printName = function (){ console.log(obj.name); console.log(this.name); } console.log(this,this==obj); //this指向ClassA return obj; //覆盖返回的this ,此处如果不使用return 会默认返回ClassA的实例 this } var o = new ClassA(‘licui‘); console.log(‘o instanceof ClassA:‘,o instanceof ClassA); //false o.printName();
时间: 2024-10-13 01:04:54