Javascript Claryfying关于淘汰赛JS

Javascript Claryfying关于淘汰赛JS,javascript,knockout.js,Javascript,Knockout.js,我问这个关于Knockoutjs的问题可能听起来很傻,这个问题在这个链接中给出: 代码如下所示: HTML <!-- This is a *view* - HTML markup that defines the appearance of your UI --> <p>First name: <strong data-bind="text: firstName"></strong></p> <p>Last name: &

我问这个关于Knockoutjs的问题可能听起来很傻,这个问题在这个链接中给出: 代码如下所示:

HTML

<!-- This is a *view* - HTML markup that defines the appearance of your UI -->

<p>First name: <strong data-bind="text: firstName"></strong></p>
<p>Last name: <strong data-bind="text: lastName"></strong></p>

<p>First name: <input data-bind="value: firstName" /></p>
<p>Last name: <input data-bind="value: lastName" /></p>

<p>Full name: <strong data-bind="text: fullName"></strong></p>
在淘汰赛中让我困惑的是括号的用法。例如,在文本绑定中,我们可以使用text:firstName(),但这也很有效。 我还尝试了以下方法:

console.log(typeof this.firstName);   //returns function
console.log(typeof this.firstName());  //returns string

因此,请有人详细介绍一下()在Knockout JS中的用法。谢谢

如果您绑定到一个可观察对象,那么您可以这样做

text:firstName()

淘汰赛将足够聪明,可以做正确的事情。现在,如果firstName是一个函数,比如

firstName: function(){
    return "Bert";
}
然后,您必须手动调用带有括号的bidning中的函数

text:firstName()
如果你要这么做的话

text:firstName
如果使用普通JavaScript函数,则该函数的字符串表示形式将显示在UI中,在现代浏览器中,它将是函数本身的文本


这是一个正在运行的播放列表。

您可以查看此播放列表,因为它包含关于淘汰赛的简单视频

它从基础开始

text:firstName()
text:firstName