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解答!在此谢过!
this是this,作用域是作用域。call改变this,但不会改变作用域。你的sum函数里没有this,所以bb只是一个变量而已。