0

我更改了places函数,以便在调用调用者之前发生错误。

这个角色能说什么?也许在一公里范围内的某个地方没有关闭?

UPD:例如,如果我将第一个字符串放在末尾,它的代码可以正常工作:

SCRIPT5022:传递一个函数,该函数返回dependentObservable knockout-2.0.0.debug.js 的值,第 1054 行字符 9

osagoViewModel.fields.yearsBoxes = new field("Years", yearsBoxesFunc, null, osagoViewModel);


function yearsBox() {
    this.year = new field("Years", function () { return ["1 year", "2 years", "3 years", "4 years", "5 years", "6 years", "7 years", "8 years", "9 years", "10 years"]; }, null, osagoViewModel);
}


var yearsBoxesFunc = function () {
    var yearsBoxCount = osagoViewModel.fields.driversCount.selectedValue();

    var retArrFunc = function (count) {
        var arr = [];
        for (var i = 0; i < count; i++) {
            arr.push(new yearsBox());
        }
        return arr;
    };


    switch (yearsBoxCount) {
        case "many":
            return retArrFunc(0);
        case "1":
            return retArrFunc(1);
        case "2":
            return retArrFunc(2);
        case "3":
            return retArrFunc(3);
        case "4":
            return retArrFunc(4);
        case "5":
            return retArrFunc(5);
    }
}
4

3 回答 3

1

这取决于你如何声明函数。是否使用 var 是有区别的。看看这个样本:

function FunctionDefinitionOrder() {
    assert(isRed(), "Named function definition doesn't matter");        
    assert(isGreen === undefined, "However, it's not the case with anonymous functions");

    function isRed() { return true; }
    var isGreen = function () { return true; };

    assert(isGreen(), "Anonymous functions are known only after the definition");
}
于 2012-05-11T12:54:34.440 回答
1

您应该恢复您的更改并处于最新的稳定状态。然后开始做任何你想做的小改动。这将花费大量时间来识别代码中的任何语法错误。

于 2012-05-11T12:55:36.950 回答
1

打开你的控制台,让它在错误时停止。在堆栈跟踪中,您将看到在没有函数作为参数的情况下调用了 knockout.js 函数的位置。

要了解函数解析及其在当前范围内的可用性,请阅读JavaScript 中的函数表达式与声明有什么区别?和/或var functionName = function() {} vs function functionName() {}

于 2012-05-11T13:45:00.873 回答