1

我正在编写一个使用 javascript 并以某种方式创建继承的程序。

如果用户输入:

x.isSingleLine()

并且它不存在,它使 Javascript 崩溃。我希望有一种方法可以做类似的事情:

x.isSingleLine() || "Doesnt Exist";

在某种程度上让它做一个软错误或某种警报。我不想将对象封装在 try-catch 块中。

有没有办法可以做到这一点?

在语句中:x.isSingleLine() || “不存在”;它会崩溃并且不做 OR 部分,所以这显然不是答案。

4

4 回答 4

6

那个怎么样?

  x.isSingleLine ? x.isSingleLine() : console.log("Doesnt Exist");

编辑: 正如@FelixKling 所建议的,如果有机会isSingleLine存在但不是你应该使用的功能:

(x.isSingleLine && x.isSingleLine instanceof Function) ? x.isSingleLine() : console.log("Doesnt Exist");
于 2013-07-22T13:27:42.910 回答
5

您需要在调用它之前检查它是否存在。

var result = x.isSingleLine ? x.isSingleLine() : "Doesn't Exist";
于 2013-07-22T13:28:48.323 回答
1

据我所知,您可以为此使用 try-catch 块:

try {
    x.isSingleLine();
} catch (e) {
    // Something happened
    alert("isSingleLine didn't quite work out.");
}

这个小提琴中玩弄它

更新 我现在注意到您不想封装在 try-catch 块中。使用 try-catch 块甚至可以处理 isSingleLine() 方法中的错误,如更新的 fiddle所示。

于 2013-07-22T13:27:03.060 回答
0
(x.isSingleLine || function(){
    console.log("Doesn't Exist");
})()
于 2013-07-22T13:31:33.873 回答