1

我将几个 .replace 调用链接在一起,并希望能够通过内联函数提供默认替换值。这是一些示例代码

bar = {};
foo = "test";
foo = foo.replace("test", function(){typeof bar.baz !== 'undefined'? bar.baz : "default_text"});

在此示例中,foo设置为"undefined"而不是"default_text"

如果我提供一个简单地返回的类似函数:

bar = {}
foo = "test"
foo = foo.replace("test", function(){ return "something" });   

foo设置为"something"。三元操作数怎么样,或者我的代码通常会阻止这种情况下的预期行为?是否有任何可能的替代解决方案可以让我设置默认文本,内联(我知道我可以将替换包装在一个 中if..then,检查对象属性是否存在,但对于用例它不是最佳的)

谢谢您的帮助

4

1 回答 1

7

简单的错误,你忘记了回报

foo = foo.replace("test", function(){ return typeof bar.baz !== 'undefined'? bar.baz : "default_text"});
                                      ^^^^^^
于 2013-09-07T00:27:48.197 回答