构造函数及实例化原理、包装类
function Car(){
this.color = 'red';
}
请问这时,this有意义吗?
无,函数并未执行,函数内部的代码没有意义。
function Car(){
this.color = 'red';
}
Car();
console.log(window.color); //'red'
这时的this存在吗? √
- 普通函数中的this指向window对象
- 在函数被
new
运算符调用时,this指向实例化对象
《JavaScript设计模式》:构造器函数外表和普通函数一模一样,区别在于被调用方式。当用new运算符调用函数时,该函数总会返回一个对象,通常情况下,构造器里的this就指向返回的这个对象。
new 函数()的返回值
-
不显示返回任何数据,或者显示返回原始值数据,该构造函数默认返回一个对象,this指向这个对象。
function Car(){ this.color = 'red'; } var car = new Car(); console.log(car); //Car {color: 'red'} console.log(window.color); //undefined
function Car(){ this.color = 'red'; return '11'; } var car = new Car(); console.log(car);//Car {color: 'red'} console.log(window.color); //undefined
-
显式返回一个object对象(引用值),这时会返回这个对象,this指向window。
function Car(){ this.color = 'red'; //return []; //return {}; return f