很多图书馆我见过像这样定义的方法
Common.deepCopy = Common.deepCopy || function(oldObject) {
return $.extend(true, {}, oldObject);
};
定义方法的必要性是这样的对象。
因为js文件只会被执行一次,所以之前不可能定义deepCopy。
答案 0 :(得分:3)
以防它已经在另一个文件中定义,或者脚本运行多次。
答案 1 :(得分:1)
情况并非总是如此。您永远不知道JS文件是否包含两次或是否再次初始化。最好检查对象是否存在,如果存在则分配它。否则创建一个新对象
答案 2 :(得分:0)
通常这是检查环境中是否存在某些内容,例如Array.prototype.indexOf
。它在oldIE中不存在。
var indexOf = [].indexOf ? fn : fn2
现在您可以定义fn以使用本机indexOf,然后将fn2用于不支持它的环境。
这种方式更好,所以每次调用函数时都不必检查 - 而是在定义时检查。