gpt4 book ai didi

CoffeeScript 实例变量

转载 作者:行者123 更新时间:2023-12-04 03:09:05 26 4
gpt4 key购买 nike

我正在学习 CoffeeScript,但我有一个小问题,我一直无法弄清楚。如果我创建一个对象来做某些事情,我偶尔需要一个实例变量来在方法之间共享该对象。例如,我想这样做:

testObject = 

var message # <- Doesn't work in CoffeeScript.

methodOne: ->
message = "Foo!"

methodTwo: ->
alert message

但是,您不能使用 var在 CoffeeScript 中,没有那个声明 message仅在内部可见 methodOne .那么,如何在 CoffeeScript 的对象中创建实例变量呢?

更新:在我的例子中修正了错字,所以这些方法实际上是方法:)

最佳答案

你不能喜欢那样。引用 language reference :

Because you don't have direct access to the var keyword, it's impossible to shadow an outer variable on purpose, you may only refer to it. So be careful that you're not reusing the name of an external variable accidentally, if you're writing a deeply nested function.



但是,您尝试做的事情在 JS 中也不可能,它相当于
testObject = {
var message;
methodOne: message = "Foo!",
methodTwo: alert(message)
}

这不是有效的 JS,因为您不能在这样的对象中声明变量;您需要使用函数来定义方法。例如在 CoffeeScript 中:
testObject =
message: ''
methodOne: ->
this.message = "Foo!"
methodTwo: ->
alert message

您也可以使用 @作为 'this.' 的快捷方式,即 @message而不是 this.message .

或者考虑使用 CoffeeScript 的 class syntax :
class testObject
constructor: ->
@message = ''

methodOne: ->
@message = "Foo!"

methodTwo: ->
alert @message

关于CoffeeScript 实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10132035/

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