gpt4 book ai didi

JavaScript "me"= "this",为什么?

转载 作者:IT王子 更新时间:2023-10-29 03:09:25 27 4
gpt4 key购买 nike

我在很多源码中看到:

var me = this;

特别是在 Ext-JS 4(JS 框架)中。为什么要做这样的事?是否有任何其他原因,或者您只是想让一个变量被称为“我”而不是“这个”?

谢谢。

最佳答案

通常这样你就可以在 this 引用其他东西(例如回调函数)的范围内保留对 this 的引用。

考虑这个例子,其中点击事件处理函数的上下文与您可能期望的不同(this 不引用 MyClass 的实例):

var MyClass = function (elem) {
this.elem = elem;
this.name = "James";
elem.addEventListener("click", function () {
alert(this.name); //oops
}, false);
};

现在考虑这个例子,我们在构造函数中存储对 this 值的引用,并在回调函数中使用它:

var MyClass = function (elem) {
var me = this;
this.elem = elem;
this.name = "James";
elem.addEventListener("click", function () {
alert(me.name); //works!
}, false);
};

回调函数可以引用在外部函数中声明的变量,即使该函数已返回(MyClass 构造函数在执行 addEventListener 后立即返回) >).这是一个闭包的演示。

关于JavaScript "me"= "this",为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13364503/

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