今天我几乎要挽救我所有的头发,这是一个愚蠢的错误。问题是我不确定这是否是预期的行为。

按照我在C#上的习惯,我编写了以下javascript代码,并试图了解发生了什么问题,因为它没有返回任何内容,甚至没有向控制台写入任何错误:

this.fullName = ko.computed(function () {

    return
        this.firstName() + " " + this.lastName();

}, this);

然后(半小时后),我更改了下面的代码a,它可以正常工作:
this.fullName = ko.computed(function () {

    return this.firstName() + " " + this.lastName();

}, this);

这是预期的行为吗?

最佳答案

是。这是隐式分号。

这是类似的情况,并带有解释:http://premii.com/lab/js_implicit_semicolon_and_return.php

简而言之:您的第一个代码段被解释为:

this.fullName = ko.computed(function () {
    return;
    this.firstName() + " " + this.lastName();
}, this);

10-05 21:03
查看更多