3

以下代码示例(也在http://jsfiddle.net/MZwBS/

var items = [];

items.push({
    example: function() {
        if(0 > 1) {
            return 'true';
        } else {
            return 'false';
        }
    }
});

document.write(items[0].example);

生产

'function () { if (0 > 1) { return "true"; } else { return "false"; } }'

代替

'false'

看来我已经能够使用 ExtJS 完成类似的事情了。谁能告诉我哪里出错了?我想即时评估这样的匿名函数。

4

3 回答 3

3

你的意思是执行吗?

document.write(items[0].example());​
于 2012-04-04T23:29:00.083 回答
2

你要:

document.write(items[0].example());

当你跳过括号时,你说的是“打印这个函数”。当你拥有它们时,你是在说,“评估这个函数并打印结果。”

于 2012-04-04T23:28:51.217 回答
0

我通过在匿名函数后添加“()”解决了我的问题,如下所示。
http://jsfiddle.net/MZwBS/7/

var items = [];

items.push({
    example: function() {
        if(0 > 1) {
            return 'true';
        } else {
            return 'false';
        }
    }()
});

document.write(items[0].example);

这个代码块现在产生了预期的结果

'false'
于 2012-04-08T03:22:05.847 回答