在对象字面量中,JavaScript中的"this"关键字是如何起作用的?
- 论坛
- 在对象字面量中,JavaScript中的"this"关键字是如何起作用的?
11 浏览
在对象字面量中,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 undefined var obj3 = { foo: new Date(), bar: new MyDate(obj3.foo) }; var obj4 = {}; obj4.foo = new Date(); obj4.bar = new MyDate(obj4.foo);
为什么前两个尝试失败,但后两个成功?如果this
不绑定到当前对象字面量,那它绑定到什么?