当 foo 传入错误参数时 程序是肯定是报错的! obj.wo 无法索引到时,也同样是报错的 现在 A 君和 B 君分别采用不同的方法 ------------------------------------------------------------- A 君采用的方法是:
function test(foo) { if (typeof foo == "function") { var obj = new foo(); if (obj.wo && obj.wo.ok && Object.prototype.toString.call(obj.wo.ok.arr) == "[object Array]") { obj.wo.ok.arr.push("帅哥"); return obj; } } return false; } ---------------------------------------------------------------------------------------- B 君采用的方法是: function test(foo) { try{ var obj = new foo(); obj.wo.ok.arr.push("帅哥"); return obj; }catch (e){} return false; }
结果 B 君成为了全群公敌,及取笑的对象, A 君和 B 君各不相让, A 君更是大骂 B 君:“你百度看看看,你用 TRY 是菜鸟的行为, TRY 效率很差的,应该尽量避免使用 TRY ”。 B 君一向按自己的原则做事, B 君不相信百度,坚持自己的 TRY 立场,B 君觉得自己的 TRY 用得完全合理,一气之下愤然离群!