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

Javascript中的“this”关键字是如何在对象文字中起作用的?

Javascript中的“this”关键字是如何在对象文字中起作用的?

SMILET 2019-06-03 10:16:01
Javascript中的“this”关键字是如何在对象文字中起作用的?我见过“this”关键字在函数中是如何工作的?,但我看不出它能回答以下问题。鉴于此代码:var MyDate = function(date) {     this.date = date;};var obj1 = {     foo: new Date(),     bar: new MyDate(this.foo)  //  this.foo is undefined};var obj2 = {};obj2.foo = new Date();obj2.bar = new MyDate(this.foo);       //  this.foo is undefinedvar obj3 = {     foo: new Date(),     bar: new MyDate(obj3.foo)};var obj4 = {};obj4.foo = new Date();obj4.bar = new MyDate(obj4.foo);为什么前两次尝试都失败了,但最后两次成功了?如果this不绑定到当前对象文本,是一定会的?
查看完整描述

4 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

我认为您可能忽略了函数和对象文字之间的一个关键区别:

在调用函数之前,不计算函数的主体。

对对象文本的主体立即进行求值。

定义函数时,this与您定义的函数无关。但是当函数是,它绑定到作为方法调用函数的对象。


查看完整回答
反对 回复 2019-06-03
  • 4 回答
  • 0 关注
  • 445 浏览
慕课专栏
更多

添加回答

举报

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