理解 JavaScript 对象文字中的“this”关键字
在 JavaScript 的对象文字中,“this”关键字的行为可能非常不同来自其他编程语言。下面是其工作原理的全面说明。
调用时绑定
与其他后期绑定语言不同,JavaScript 在调用时而不是在编译期间绑定“this”时间或运行时间。这意味着“this”的值取决于函数的调用方式。
绑定规则
JavaScript 对象文本中“this”的绑定规则如下如下:
示例用例
说明不同的绑定规则:
const obj = { foo: "Foo", bar() { console.log(this.foo); // "Foo" - "this" refers to the object }, }; obj.bar(); // Calls the method, binding "this" to the object
function MyDate(date) { this.date = date; } const obj1 = { foo: new Date(), bar: new MyDate(this.foo), // Error: this.foo is undefined }; const obj2 = { foo: new Date(), bar: new MyDate(obj2.foo), // Works: "this" refers to obj2 };
在第一个示例中, “this”引用对象“obj”,因为该方法被作为对象方法调用。在第二个示例中,“this”在“obj1”中未定义,因为该函数是在没有任何对象上下文的情况下调用的。在“obj2”中,“this”指的是“obj2”,因为该函数是使用“this”对象显式调用的。
以上是'this”关键字在 JavaScript 对象文本中的行为如何?的详细内容。更多信息请关注PHP中文网其他相关文章!