Javascript:不同的返回类型
Javascript: Different return types
本文关键字:返回类型 Javascript 更新时间:2023-09-26
我发现我可以从JavaScript中的同一个函数返回不同的类型。这种做法是习惯的还是应该被劝阻?
例如:somefn = function(e) {
switch (e.type)
{
case 'mousedown':
return false;
case 'mousemove':
return {x:10, y:20};
}
};
我不赞成。任何代码如果使用的函数可以根据上下文返回不同的类型,就必须检查返回值。
然而,在某些情况下它是有意义的。假设您有一个解析字符串(例如JSON)的函数。在这种情况下,如果输入字符串是表示数组的JSON字符串返回数组,如果输入包含对象,布尔值,数字等返回对象,返回数组就很有意义了。一般来说,做最不会引起意外的事情。举个例子,你的例子会让我大吃一惊。
请注意,您的函数不仅返回不同的类型,甚至可能不返回任何内容:
somefn({type: 'foo'}); //undefined
虽然不鼓励上面描述的不一致的返回行为,但是返回不同的对象类型是常见的,尽管我不能说它是否习惯。
为了可读性和可维护性,我不建议返回完全不同的对象(比如您示例中的布尔和对象字面量),但是返回具有稍微甚至完全不同属性的对象字面量是非常常见的:
somefn = function(e) {
switch (e.type)
{
case 'mousedown':
return {x:10, y:20, down: false};
case 'mousemove':
return {x:10, y:20};
default:
return {};
}
};
在javascript中,一个函数返回不同类型的对象是很常见的,只需编写它,调用它并确定返回值的类型。
相关文章:
- 节点,express应用程序返回text/javascript响应头(Content-Type),尽管设置了applic
- 用于循环随机返回的javascript
- 如何将表单数据传递给PHP并将json字符串返回给Javascript
- 如何执行ajax响应返回的javascript函数
- 如何返回与 javascript 中循环的其余部分不同的第一个循环
- 函数获胜't返回q-Javascript
- calling.trigger(“click”),它在ajax调用返回的javascript代码中
- 如何执行PageMethod返回的javascript
- 了解存储的MongoDB javascript函数中MongoDB命令的返回类型
- 没有返回类型的函数的Javascript单元测试
- 为什么可以在 JavaScript 中添加参数类型和返回类型
- javascript:确定函数的返回类型
- Javascript'在'循环内部的运算符返回类型错误
- Javascript返回类型错误"无法获取属性'1'未定义或空引用的
- 如何获得返回类型'any'从javascript到java在GWT?(泛型类型传递)
- 函数作为返回类型javascript
- javascript提示返回类型始终是对象
- Javascript toString覆盖函数返回类型
- 当第一次调用返回类型函数时,没有调用两个javascript函数
- Javascript:不同的返回类型