gpt4 book ai didi

javascript - 关于这个和 javascript 中的 self

转载 作者:搜寻专家 更新时间:2023-11-01 00:46:05 25 4
gpt4 key购买 nike

我知道“ self ”的魔力。但是看看来自 nodejs 的这个片段(不完整)。

Socket.prototype.connect = function(options, cb) {
......
var self = this;
var pipe = !!options.path;

if (this.destroyed || !this._handle) {
this._handle = pipe ? createPipe() : createTCP();
initSocketHandle(this);
}

if (typeof cb === 'function') {
self.once('connect', cb);
}

timers.active(this);

self._connecting = true;
self.writable = true;
......
}

据我了解,我们必须使用 self 来创建闭包。这些行中没有闭包,但作者在将其分配给 self 后使用了两者。这有什么区别吗?

最佳答案

在您在此特定代码示例中显示的内容中,甚至没有理由拥有 self 变量,因为没有其他函数作用域可能需要访问 的原始值>这个

一些开发人员有一个一致的方法或约定来创建一个局部变量,如 self 并为其分配 this 的值,以便他们可以在需要时使用它, 在闭包中。 self 变量也可以最小化为小于 this 因为它可以重命名为一个字符的变量名,但是 this 不能重命名。

在任何情况下,如果删除 self 并且在此特定方法中仅使用 this,则此处的功能不会受到影响。

我自己的个人习惯是只定义 self 如果确实需要它,这与我用于其他局部变量的逻辑相同,然后我只在需要它的闭包内使用它。

关于javascript - 关于这个和 javascript 中的 self ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16074990/

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