类中静态的方法和动态方法调用问题
<script language="JavaScript"><!--
function test1(){
this.a = "a";
function b(){
return this.a;
}
function c(){
return "aaa";
}
this.d= function(){
return this.a;
}
this.e = function(){
return c();
}
this.f = function(){
return b();
}
}
var d = new test1();
alert(d.d());
alert(d.e());
alert(d.f());
//-->
</script>
谁能解释第三个alert为什么会出错?取不到值?
----------------------------------------------------------------------------------------
我觉得不是这样的,如果是楼上的说法c是不是这个类的成员呢~
但是c确实执行了啊
根本问题是this.a是静态的属性,b()是动态的方法,b是不可以调用this.a的(如果想调用的时候怎么办,我也不知道,能力有限)
在b中调用this.a解释为b类的a属性,该属性未定义。所以给的结果是undefined
这是为什么你的问题所在
c为什么可以调用就是,就是因为他没有和test1的静态属性和方法没有任何联系,所以就可以执行
那么为什么this.d就可以调用this.a呢,因为this.d是静态的方法,可以调用静态属性
综上 ,在js类中
静态方法可以调用静态属性,静态方法和动态方法
反之不可行
------------------------------------------------------------------------------------------
别出解决的问题,拿来大家分享