gpt4 book ai didi

javascript - 传递给 __defineGetter__ 的函数中 "this"的值是多少

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:35:36 25 4
gpt4 key购买 nike

我从 grunt npm 模块的源代码中看到以下代码行 -

String.prototype.__defineGetter__(method, function() { return this; });

只是试图预测上面匿名函数中“this”的值是什么-

  • 它指向'方法'
  • 全局“窗口”对象,如果在浏览器中运行或从 grunt 的 Angular 来看类似的话
  • 其他取决于 defineGetter 的定义,如果在 'defineGetter' 定义中使用 call 或 apply。

感谢您的帮助!!

最佳答案

this 将是发生 get 操作的对象,我认为将始终是您调用 __defineGetter__ 的对象(因为我无法立即看到将此功能转移到其他地方的方法,但我不会保证你不能;不过你必须故意这样做)。

值得注意的是 __defineGetter__ 是非标准的且已过时。当前定义 getter 的方法是使用 Object.definePropertyObject.defineProperties ,像这样:

Object.defineProperty(String.prototype, "foo", {
get: function() {
// Here, `this` is the string
return this.toUpperCase();
}
});

console.log("hi there".foo);

...记录 "HI THERE"

Live Example | Source

关于javascript - 传递给 __defineGetter__ 的函数中 "this"的值是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13961919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com