我想知道哪种方法更好:
var Obj = Obj || {};
或
if (Obj === undefined || typeof Obj !== 'object') {
Obj = {};
}
我被告知第二种方法更好,但我不知道为什么。请你能告诉我每个人的利弊是什么。
非常感谢
答案 0 :(得分:2)
第二种方法更具体,因此为了创建对象(如果它尚不存在),它会更好。第一种方法仅测试对象是否“真实”,意味着如果Obj
是数字5,它仍将返回原始Obj
,而在第二种方法中,Obj
必须类型为'object'才能保留其值。
实际上,没有太大区别,因为你很少遇到上述情况;第二种方法只是告诉读者你想要什么,更具体地说。我喜欢第一种方法,因为它更短,但这取决于你想要的具体程度。
答案 1 :(得分:2)
我在第一种方法中看到的唯一问题是,如果有人定义Obj
来引用不是对象但也不是假的东西 - 一个非零整数,比如说 - 然后Obj
将继续指向那个东西,后来调用Obj
假设它是一个对象将失败。但为了简单起见,我仍然更喜欢第一个版本;我尝试命名这样的对象,使得没有人会分配任何不适合该名称的东西。