下面javascript怎么理解?

(obj.inner.print)() 和 (obj.inner.print = obj.inner.print)()怎么理解?

var num = 10;
var obj = {
    num:8,
    inner: {
        num: 6,
        print: function () {
            console.log(this.num);
        }
    }
}
num = 888;
obj.inner.print(); // 6
var fn = obj.inner.print;
fn(); //888
(obj.inner.print)(); //6
(obj.inner.print = obj.inner.print)(); //888 
阅读 2.1k
2 个回答
(obj.inner.print)()

其实就是

obj.inner.print()

(obj.inner.print = obj.inner.print)()

是一个赋值操作,返回一个函数,再调用这个函数

第一个是运行函数,(function)(),自运行匿名函数。第二个你可以想象一个你吃鸡腿,你把鸡腿拿在左手吃换成了拿右手吃~楼上说的很对~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题