function outside(){
var z = "var z";
var k = "k";
var w = 'w';
var name = "SevenLee";
var age;
{
//alert("constructor:"+name);//normal
}//花括号优先于(function(){ //statement })()
(function(){
t();//this method is normal
//this.setName("constructor Name");//exception:对象不支持此属性或方法
//setName("constructor Name");//exception:缺少对象
})();
this.setName = function(name){
this.name = name;
}
this.getName = function(){
return name;
}
function t(){
//显示:this.z:undefined z:var z
alert("this.z:"+this.z+"\tz:"+z);
//this.getName();//exception:对象不支持此属性或方法
}
this.outFun = function(){
//alert(name);
//t();
//this.setName("Lee");
}
}var out = new outside();
在这里,我不知道this何时有用,何时用没用郁闷,各位大虾们,给小弟讲讲“this”的用法。谢谢谢谢!!!
function a(){
this.a_attr_this="a_attr_this";
var a_attr_var="a_attr_val";
this.a_fuc_this=function(){
alert(a_attr_var);//可调用父级定义的属性
};
}
alert("带 this 的 "+a_.a_attr_this);//在a()外面调用 this. 这种形式的属性 方法
alert("带 var 的 "+a_.a_attr_var);//而这种 var a_attr_var 的外函数外面无法调用a_.a_fuc_this();//在a()外面调用 this. 这种形式的属性 方法
</script>
var a_=new a();
function a(){
this.a_attr_this="a_attr_this";
var a_attr_var="a_attr_val";
this.a_fuc_this=function(){
a_fuc_var();//可调用父级内的方法
};
function a_fuc_var(){
alert(a_attr_var);
}
}
alert("带 this 的 "+a_.a_attr_this);//在a()外面可以调用 this. 这种形式的属性 方法
alert("带 var 的 "+a_.a_attr_var);//而这种 var a_attr_var 的在函数外面无法调用a_.a_fuc_this();//在a()外面调用 this. 这种形式的属性 方法
a_.a_fuc_var();//执行到这里会报错,找不到方法 a_fuc_var()
</script>
修改如下:
function outside()
{
var z = "var z";
var k = "k";
var w = 'w';
var name = "SevenLee";
var age;
var me = this;// 提出this指代。 如果new outsidenew() 其永远指向这个对象; 如果outside() 其指代window
this.setName = function(name)
{
this.name = name;
} this.getName = function()
{
return name;
}; (function()
{
t();
me.setName("constructor Name");
})(); function t()
{
me.getName();
} this.outFun = function()
{
alert(me.getName());
t();
me.setName("Lee");
}
}var out = new outside();
{
return this.name;
};5楼代码还需要改下
这个,最好自己写写代码体会下