关于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"根本不存在。
答案 0 :(得分:3)
JavaScript区分null,这是一个表示故意非值(并且只能通过null关键字访问)的值,以及undefined,它是一个未定义类型的值,表示未初始化的值 - 即a尚未分配价值。
您只需使用
即可if(this.hasOwnProperty('Age')){
}
或者
if('Age' in this){
}
答案 1 :(得分:2)
obj.Age
已经不存在。如果您想要它,那么您必须将其初始化为null
或undefined
然后你可以检查
if(obj.hasOwnProperty('Age')){
}
答案 2 :(得分:-2)
你只想检查它的存在吗?使用if
声明
if (obj.Age) {
// do stuf
} else {
// do other stuff
}
undefined返回作为if语句的假值,所以如果它不存在则会执行else语句。如果它确实存在,那么第一个块。