困惑的问题解决:
<script>
function Eq(){
this.a = "aaa";
Eq.getA = function(){
alert("bbb");
//alert(this.a);
}
Eq.prototype.getB = function(){
alert(this.a);
}
}
var eq = new Eq();
//eq.getA();
Eq.getA();
eq.getB();
//Eq.getB();
</script>
运行代码发现,注释掉语句都不能执行成功。得出如下结论:
1)不使用property属性定义的对象,会被认为是静态方法,可以直接用类名进行调用(前提:前面必须已经做过初始化步骤),但使用对象的实例是无法调用的!另外,方法中无法使用this变量来调用对象的属性。
2)使用property属性定义的对象方法,可以看成是非静态方法,只有在实例化后才能使用。其方法内部可以this来引用对象自身。