gpt4 book ai didi

oop - nextTick 在类中的用法

转载 作者:太空宇宙 更新时间:2023-11-04 02:59:27 26 4
gpt4 key购买 nike

如果我有这样的代码:

class SomeClass
constructor: ->
@someAttr = false

someFunction: ->
process.nextTick ->
@someAttr = true

obj = new SomeClass
obj.someFunction()
obj.someAttr # Would still be false, because the @ (this) is in the process context

它不会工作,因为 process.nextTick 将我们带入一个不同的上下文,其中 @someAttr 未定义。我该如何解决这个问题(当我想调用 SomeClass 的方法时)?

最佳答案

解决这个问题的通常方法是将 this 的引用存储在局部变量中,该变量在匿名函数中可用。在 JavaScript 中:

function someFunction() {
var self = this;
process.nextTick(function() {
self.someAttr = true;
});
}

CoffeeScript 有一个特殊的语法来帮助解决这个问题; “fat arrow”:

class SomeClass:
someFunction: ->
process.nextTick =>
@someAttr = true

关于oop - nextTick 在类中的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13901927/

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