作用域安全的构造函数(初学)
最近在看js高级程序设计 感觉学的东西还是很多啊,今天先记录一下new关键字使用时 this指针的问题 比如:
function person(name,age){
this.name = name;
this.age = age;
}
var jie = new person("jie",24);
alert(jie.name)
结果为 “jie” 但是如果 不加new的话
var jie = person("jie",24)
这时候this的作用域会映射到window上 也就是说
alert(window.name)也会返回“jie”
会对变量的安全造成影响 jquery的john 推荐的方法是
先判断this是否属于该对象 如果不属于 用new创建
function person(name){
if(this instanceof person){
this.name = name;
}else{
return new person(name)
}
}
this.name = name;
}else{
return new person(name)
}
}

浙公网安备 33010602011771号