我只是在button.js中查找代码,我看到这个三元运算符很难解码。基本上我在谈论下面的代码行:
$el[val](data[state] == null ? this.options[state] : data[state])
我理解以下部分:
data[state] == null ? this.options[state] : data[state]
但这是什么:
$el[val]
我在理解这个javascript语法时遇到了问题,有人可以解释复杂性并向我解释这个问题。我经历了几次代码,但仍然无法理解。
你也可以在GitHub上查看插件,这里有链接:link (line 40)
答案 0 :(得分:1)
在line 31上,您可以看到此行
var val = $el.is('input') ? 'val' : 'html'
jQuery对象的 val
和html
函数。因此,$el[val]
会返回val
或html
的函数引用,通过传递结果来调用
data[state] == null ? this.options[state] : data[state]
更清楚,
var func = $el[val]; // function reference is gotten
func(data[state] == null ? this.options[state] : data[state]); // invocation
以上只是为了说明它是如何运作的。实时它会破坏,因为缺少$el
的上下文。