var length = 10;
function fn(){
console.log(this.length);
}
var obj = {
length: 5,
method: function (fn1) {
console.log(arguments[0]()); }
};
obj.method(fn, 123);//输出2
var length = 10;
function fn(){
console.log(this.length);
}
var obj = {
length: 5,
method: function (fn1) {
console.log(fn1()); }
};
obj.method(fn, 123);//输出10
var length = 10;
function fn(){
console.log(this.length);
}
var obj = {
length: 5,
method: function (fn1) {
console.log(fn1===arguments[0]); }
};
obj.method(fn, 123);//输出true
我想问一下,上面两个代码this指向怎么理解?
第一个代码this.length应该是函数参数的个数;这个是为啥?
第二个代码this.length应该是指向全局变量length,这个this为什么不指向obj呢?是obj调用的呀?