gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:25:39 24 4
gpt4 key购买 nike

当我在练习跨浏览器代码时,我意识到我制作的整个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com