[JavaScript] 纯文本查看 复制代码 var x = 3;
var y = 4;
var obj = {
x: 1,
y: 6,
getX: function () {
var x = 5;
return function () {
return this.x;
}();
},
getY: function () {
var y = 7;
return this.y;
}
}
console.log(obj.getX())//3
console.log(obj.getY())//6
this指向问题分为四种:
1.函数调用模式中this指向window。如题中obj.getX()返回的是一个立即执行函数,而这个函数的调用者就是window
2.方法调用模式中this指向调用对象。如题中的obj.getY()
3.构造函数调用模式,this指向new出来的对象,也就是实例对象
[JavaScript] 纯文本查看 复制代码 function A() { this.name = "yy1" }
var a = new A();
console.log(a.name)
4.上下文调用模式,可以指定this的作用域。当第一个参数是null或者undefined时,this指向window。
apply()和call()
fn.apply(作用域,[...args])
fn.call(作用域,arg1,arg2,arg3...)
|