哎呀,是我想多了好像,我运行回调函数,和调用test 方法似乎是一个道理 。。。呃嗷嗷,好像是我想多了,和调用函数应该是一个道理,fun其实只是报存了对方法的指针,方法在堆中。为什么js回调函数依然可以调用定义时用到的变量var that = this;var test = function () { console.log(that);}var page = function(fun) { fun();//运行回调函数 test();//运行test函数}var xiaoming = { name : '小名', watch() { let that = this; //向page传递我的回调函数 page(function(){ console.log(that); }) }}xiaoming.watch();test函数 和 往page里面传递的回调函数 一样的代码page中运行 回调函数 和 test函数那么问题来了为什么 test()//打印出window,我知道但是为什么同样的代码function(){ console.log(that);}回调函数 能打印出 xiaoming 这个对象运行 回调函数 的方式是有什么特别的地方吗?我目前的理解是,当我把函数作为参数传递到另一个函数的时候, 会把我的作用域一起传递, page(function(){ console.log(that); })会把 that也以前传递吗。。。我好蒙蔽呀
添加回答
举报
0/150
提交
取消