Javascript作用域问题的构造函数的变量

构造函数new对于使用。代表创建对象。此外,它可以被用作普通的函数调用,因为它也是一个功能。

function Person(name) 
{
	this.name=name;
}

Person(12);
alert(window.name);//12

 

能够看到当构造函数被当成普通函数调用的时候。this代表的是全局的window对象。

非常显然把构造函数当成普通函数调用,不是好的做法。 也没有什么道理要这么做。

实际中应该杜绝这样奇怪的使用方法,以免产生奇怪的问题。

 

function Person(name,sex) 
{
    this.name=name;
    var name1="22";
    name2=sex;
}
var per = new Person("aty","boy");
alert(per.name);// aty
alert(per.name1);//undefined
alert(per.name2);//undefined
alert(window.name2);//boy

 

构造函数中定义变量使用this是成员变量;使用var是局部变量;不加keyword是全局变量。会加入到window对象中。这样解释了为什使用什么样的构造thiskeyword。


版权声明:本文博客原创文章。博客,未经同意,不得转载。

posted @ 2015-07-16 16:17  yxwkaifa  阅读(372)  评论(0编辑  收藏  举报