为了账号安全,请及时绑定邮箱和手机立即绑定

js 回调函数 为什么可以获取原来所在的变量

js 回调函数 为什么可以获取原来所在的变量

一只名叫tom的猫 2019-01-30 21:10:47
哎呀,是我想多了好像,我运行回调函数,和调用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也以前传递吗。。。我好蒙蔽呀
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 433 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信