如何检查函数对象(Javascript)中是否存在属性

时间:2015-10-19 06:37:41

标签: javascript function object properties

关于JavaScript与函数对象的这个问题。

我的功能如下:

function person(){
this.name = 'Tom',
this.Age //not set any value
} 

我创造了一个由#34; person"功能:

var obj = new person();
obj.name //Tom
obj.Age //undefined
obj.DOB //also returned undefined

如何区分"年龄“属性已经存在于" obj"但没有价值,或者" DOB"根本不存在。

3 个答案:

答案 0 :(得分:3)

JavaScript区分null,这是一个表示故意非值(并且只能通过null关键字访问)的值,以及undefined,它是一个未定义类型的值,表示未初始化的值 - 即a尚未分配价值。

您只需使用

即可
if(this.hasOwnProperty('Age')){

}

或者

if('Age' in this){

}

答案 1 :(得分:2)

obj.Age 已经不存在。如果您想要它,那么您必须将其初始化为nullundefined 然后你可以检查

if(obj.hasOwnProperty('Age')){

}

答案 2 :(得分:-2)

你只想检查它的存在吗?使用if声明

if (obj.Age) {
  // do stuf
} else {
  // do other stuff
}

undefined返回作为if语句的假值,所以如果它不存在则会执行else语句。如果它确实存在,那么第一个块。