var bb=222;
function sum(num1 , num2){
return bb ;
}
var obj = {
bb:1111,
color: function callsum(){
var cc=sum.call(obj);
//var cc=sum.call(this);
console.log(cc);
}
};
aa.color();本来想测试一下看sum.call里面的this是不是指向obj,
结果发现打印出的是222(指向window)
然后又把参数换成obj,结果还是222?真心搞不懂!
另外为什么call里的this指向的window?他不是在callsum里吗?
而callsum的执行坏境不是obj吗?
为什么会打印出222呢?
前端小白求dalao解答!在此谢过!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
this是this,作用域是作用域。call改变this,但不会改变作用域。你的sum函数里没有this,所以bb只是一个变量而已。