作用域安全的构造函数(初学)

  最近在看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)
  }
}
posted @ 2011-04-11 22:46    Views(224)  Comments(3)    收藏  举报