直接与字符串进行比较是 javascript 中的常见做法。类 ENUM 结构虽然易于实现,但通常不是很常用,因为您必须将类 ENUM 定义为全局变量或执行以下操作:
application.enums.myObject.hover= 1;
application.enums.myObject.click= 2;
myObject= new application.constructors.MyObject();
myObject.create(title, text, orientation, application.enums.myObject.hover, layout)
以这种方式,只有应用程序是全局的,但键入 application.enums.myObject 是一件痛苦的事情。
如何处理错误:
选项1:抛出异常:
Create: function (title, text, orientation, trigger, layout) {
if (trigger !== "hover" && trigger !== "click") {
throw "error: invalid parameter trigger";
}
},
这将使您的脚本崩溃,除非您在某处有一个 catch 子句。在某些情况下,让聚会崩溃总比不提供一种了解问题所在的方法要好。如果您打算捕获这些异常(而不是让它们使脚本崩溃),我建议通过为您的错误等创建类来正确地做到这一点。
选项 2:返回 null。
Create: function (title, text, orientation, trigger, layout) {
if (trigger !== "hover" && trigger !== "click") {
return null;
}
},
如果您要使用函数的返回值,这种方法效果更好。调试时,您将在尝试使用返回值时看到“对象没有名为 X 的属性”错误(或者如果您使用它,您的值将被强制转换为“null”字符串)。
选项 3:安静地忽略错误,什么也不做。你的脚本要么自己崩溃,要么什么都不做。不建议
观察:
1 - 不要在生产代码中使用控制台对象。它不是标准的一部分,除非您打开开发者控制台,否则 IE 不会将其暴露给网页
2 - 不要以大写字母开头你的函数名,除非它是一个应该用'new'关键字调用的函数(即构造函数)。