三元运算符代码中的button.js

时间:2015-02-13 13:05:58

标签: javascript jquery twitter-bootstrap

我只是在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)

1 个答案:

答案 0 :(得分:1)

line 31上,您可以看到此行

var val  = $el.is('input') ? 'val' : 'html'
jQuery对象的

valhtml函数。因此,$el[val]会返回valhtml的函数引用,通过传递结果来调用

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的上下文。