オブジェクトリテラル内のコード「@」(this) が、即時ではなく囲んでいるオブジェクトを参照する理由を知っている人はいますか?
class Example extends Backbone.View
render: ->
test =
num: 10
nextNum: @num + 1 # References "Example" not "test"
オブジェクトリテラル内のコード「@」(this) が、即時ではなく囲んでいるオブジェクトを参照する理由を知っている人はいますか?
class Example extends Backbone.View
render: ->
test =
num: 10
nextNum: @num + 1 # References "Example" not "test"
Hash コンストラクターを呼び出し、params をコンストラクターに送信しています。このコードは、次のコードと似ています (同じではない可能性があります)。
var test = new Hash({ num: 10, nextNum: this.num + 1 });
上記の例では、インスタンスがまだ作成されていないため、特にインスタンス自体でthis
はなく、外部オブジェクトを参照していることを明確に確認できると思います。test
test
上記の例では、次のように問題を解決します。
var num = 10;
var test = new Hash({ num: num, nextNum: num + 1 });
したがって、これをあなたのケースに移すと、同様の方法で解決する必要があると思います:
class Example extends Backbone.View
render: ->
num = 10
test =
num: num
nextNum: num + 1