我看到我可以从 JavaScript 中的同一个函数返回不同的类型。这种做法是惯用的还是应该劝阻?
例如:
somefn = function(e) {
switch (e.type)
{
case 'mousedown':
return false;
case 'mousemove':
return {x:10, y:20};
}
};
最佳答案
我会阻止它。任何使用可根据上下文返回不同类型的函数的代码都必须检查返回值。
然而,在某些情况下它是有意义的。假设您有一个解析字符串的函数,例如 JSON。在这种情况下,如果输入字符串是表示数组的 JSON 字符串,则返回数组非常有意义,如果输入包含对象、 bool 值、数字等,则返回对象。
一般来说,做最不会引起意外的事情。例如,你的例子会让我大吃一惊。
关于Javascript:不同的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5849256/