javascript - 我什么时候可以在 javascript 中省略 return

标签 javascript return

当我在练习跨浏览器代码时,我意识到我制作的整个 util obj 中只有一个函数需要返回,我想知道为什么其他函数不需要返回。据我了解,当没有调用 return 时,JavaScript 将返回 undefined ,除非它是一个构造函数,在这种情况下它将返回 this。

我用 util 中的所有函数测试了它,返回了每个条件的结果并且它有效。然后我在条件的任何结果中都没有返回的情况下测试了它,但是如果没有在 getTarget 函数中返回它就无法工作。

谁能帮我更好地理解其中的原因?

jsFiddle 在这里 http://jsfiddle.net/SusannDelgado/CnWzE/

    var evtUtil = {
    //cross browser Events
    addEvent: function (el, type, fn) {
        if (typeof addEventListener !== "undefined") {
            el.addEventListener(type, fn, false);
        } else if (typeof attachEvent !== "undefined") {
            el.attachEvent("on" + type, fn);
        } else {
            el["on" + type] = fn;
        }
    },
    removeEvent: function (el, type, fn) {
        if (typeof removeEventListener !== "undefined") {
            el.removeEventListener(type, fn, false);
        } else if (typeof detachEvent !== "undefined") {
            el.detachEvent("on" + type, fn);
        } else {
            el["on" + type] = null;
        }
    },
    getTarget: function (event) {
        if (typeof event.target !== "undefined") {
            return event.target;
        } else {
            return event.srcElement;
        }
    },
    preventDefault: function (event) {
        if (typeof event.preventDefault !== "undefined") {
            event.preventDefault();
        } else {
            event.returnValue = false;
        }
    }
};

最佳答案

Return 用于将某些东西从函数传递给调用它的代码(一般来说)。因此,在一个不需要传回任何东西的函数中,例如 removeEvent 只是修改其他东西的状态,这是没有必要的。

getTarget 的不同之处在于,正如其名称所示,您正在尝试检索某物(在本例中为事件的目标对象)。因此,在调用 getTarget 的代码中,需要“something”。正如你所说,没有返回,JS 只是返回 undefined

关于javascript - 我什么时候可以在 javascript 中省略 return,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16951287/

相关文章:

javascript - 设置 xlink :href in svg with angularjs to base64-encoded image

javascript - 如何通过 Angular 中 HTML 的方法调用来更改 JS 文件中的数组?

javascript - 在所有 promise 解决后返回

Javascript - 使用查找获取对象 ID

Javascript for-in 循环问题

javascript - 如何让Node.JS在工作负载繁重时回复请求?

javascript - React 组件在 map 中给出 no-unused-express 错误

ruby - 为什么显式返回会影响 Proc?

android - 从设置 Intent 返回应用程序

c++ - 带有返回值的 if 语句代码样式