stack.op "add" ) $("#sub").click( -> stack.op "sub" ) 但这不是: for op in ['add-6ren">
gpt4 book ai didi

javascript - CoffeeScript 中执行错误的事件

转载 作者:行者123 更新时间:2023-11-28 21:15:40 25 4
gpt4 key购买 nike

这有效:

$("#add").click( -> stack.op "add" )
$("#sub").click( -> stack.op "sub" )

但这不是:

for op in ['add','sub']  
$('#' + op).click( -> stack.op op)

两个按钮都执行最后一个操作“sub”。

Class Stack
add: ...
sub: ...
op: (name) ->
eval "this.#{name}()"

最佳答案

使用do构造:

for op in ['add', 'sub']
do (op) ->
$('#' + op).click( -> stack.op op)

这是因为 for 循环没有创建闭包。

关于javascript - CoffeeScript 中执行错误的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7697457/

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