首页 > 代码库 > Javascript构造函数中变量的作用域问题
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是局部变量;不加关键字是全局变量,会添加到window对象中。这样解释了为什么构造函数中要使用this关键字。
Javascript构造函数中变量的作用域问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。