function CFoo()
{
this.v = F1();
this.F = F2;
}
function F1()
{
....
return "F1";
}
function F2()
{
....
return "F2";
}
看上面的代码,在类CFoo中,函数F1和F2一个加括号一个不加括号,这有什么区别呢?
加括号表示调用这个函数,不加括号表示将函数地址赋予另一个变量(函数类型的变量)。
也就是说在执行
var obj = new CFoo();
时,F1会得到调用,并把返回值赋予v,而F2不会得到调用。
在执行
var v = obj.v;
时F1不会再被调用。
在执行
var v = obj.F();
时,F2才会得到调用。
====
另外,假如F2有参数的话,类的写法不变,F2函数实现体添加参数,在调用时obj.F(参数)即可。
====
F2里面要调用类CFoo的成员变量v怎么办?this.v!
====
相关阅读