最近在读js高级编程,有点迷惑的地方。
在普通的函数中,this是指向全局作用域的:
var name = 'moon';
function sayName(){
var name = 'star'; console.log(this.name); //moon
}
但是在构造函数里,this是指向谁:
function Person(name, age){
this.name = name; //这里为啥可以这样写,不太明白,虽然我也这样写this.age = age;
}
var p1 = new Person('sun', 22);
书上写的是: 将构造函数的作用域赋给新对象,因此this指向了这个新对象。为什么第一种情况this是全局作用域,而第二种情况就成了函数作用域了呢,求解惑
相关分类