首页 >web前端 >js教程 >JavaScript 对象文字中的'this”关键字如何表现?

JavaScript 对象文字中的'this”关键字如何表现?

Patricia Arquette
Patricia Arquette原创
2024-12-13 21:48:21624浏览

How Does the `this` Keyword Behave in JavaScript Object Literals?

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”绑定

Javascript 的“this”关键字表现出后期绑定,这意味着它的值在调用函数之前才确定。在您的情况下:

场景 1 和 2:

  • 在“obj1”和“obj2”中,“new MyDate”中的“this”关键字函数引用全局对象(即“窗口”),因为它们不作为特定对象的方法调用。由于全局对象上没有名为“foo”的属性,因此会导致未定义的错误。

场景 3 和 4:

  • 中“obj3”和“obj4”中,“this”关键字成功引用了各自的对象,因为“new MyDate”函数被作为这些物体。因此,“this.foo”正确地访问了每个对象中的“foo”属性。

结论

对象中“this”关键字的行为文字取决于调用函数的上下文。如果没有显式绑定到对象,则默认为全局对象。但是,当作为对象的方法调用时,它引用该特定对象,确保正确访问该对象的属性和方法。

以上是JavaScript 对象文字中的'this”关键字如何表现?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn