●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●把函数放到参数里 怎么作用域就变了??????????????????
楼主的标题里符号少一点吧,半行就够了,界面都走形了第一个就不用解释了吧,a.toString()就是这个字符串第二个只有执行a.b()(或者apply调用)才能指定b的所属对象为this,
如果没有a. ,那this就是指全局的载体window
相当于先执行了var x=a.b; alert(x());
如果没有a. ,那this就是指全局的载体window
相当于先执行了var x=a.b; alert(x());
a.b=function(){return this}
a.c=function(x){alert(x())}
a.c(a.b)//弹出的依然是window对象,这表明参数(a.b)的作用域和a.c的a.无关
a.b=function(){return this}
a.c=function(x){alert(x())}
var d=function(){
a.c(a.b)
}
d.call(a)//弹出window对象,这表明参数(a.b)的作用域和调用它的环境无关
var result = x();
alert(result);//是window,x.call(a)才是a函数