js判断方法是否存在

JavaScript017

js判断方法是否存在,第1张

if( typeof yourfunctionname === 'function' ){

    //存在且是function

}else{

    //不存在或不是function

}

1、直接判断对象不为null

if (!myObj) {

var myObj = { }

}

Javascript语言是"先解析,后运行",解析时就已经完成了变量声明

2、使用window对象判断某对象是否存在

if (!window.myObj) {

var myObj = { }

}

3、使用this对象判断某对象是否存在

if (!this.myObj) {

this.myObj = { }

}

在某些运行环境中(比如V8、Rhino),window未必是顶层对象。所以,考虑改成this进行判断,在全局变量的层面中,this关键字总是指向顶层变量,所以就可以独立于不同的运行环境。

4、方法三这样写可读性较差,而且this的指向是可变的,容易出错,所以进一步改写:

var global = this

if (!global.myObj) {

global.myObj = { }

}

if (typeof myObj == "undefined") {

var myObj = { }

}

这是目前使用最广泛的判断javascript对象是否存在的方法。

这在IE浏览器中往往会弹出一个js错误提示框,影响用户体验。所以比较好的做法是,在访问页面元素的属性或方法之前,先判断此页面元素是否存在。function f(elementId) {var obj = document.getElementById(elementId)if(obj) {// 相关操作}}上面的代码是先通过document.getElementById()去获取指定的页面元素,然后通过if(obj)判断页面元素是否存在,如果存在则进行相关操作。