当我意识到整个util obj中只有一个函数需要返回时,我正在练习跨浏览器代码,我想知道为什么其他人不需要返回。根据我的理解,当没有返回被调用时,JavaScript将返回undefined,除非它是一个构造函数,在这种情况下它将返回此值。什么时候可以省略javascript中的返回值
我用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;
}
}
};
啊我没有注意到。谢谢。你的回答非常明确。所以,如果我要求的东西我需要返回来检索它,但如果我只是执行一个函数,我可能不需要返回。 –
没错。偶尔(在某些语言中)使用空白返回来结束函数,在函数完成之前不会传递任何内容,但正如我在99%的情况中所说的那样,上述内容是正确的。 – n00dle