判断 JavaScript 对象是否存在
1、会变量提升
if(!myObj){
var myObj = {};
}
2、缺点:兼容性不好,使用了 window 对象,只能在浏览器中实现
if(!window.myObj){
window.myObj = {};
}
3、使用一个变量保存 this ,防止 this 指向发生改变
let global = this;
if(!global.myObj){
global.myObj = {};
}
4、使用 typeof 判断该对象是否被定义
if(typeof myObj === 'undefined'){
var myObj = {};
}
5、由于在已定义、但未赋值的情况下,myObj的值直接等于undefined,所以上面的写法可以简化:
if(myObj === undefined){
var myObj = {};
}
6、使用hasOwnProperty方法,判断myObj是否为顶层对象的一个属性
if (!this.hasOwnProperty('myObj')) {
this.myObj = { };
}