JS类中函数与括号

作者:chilleen 来源:ITPOW 日期:2006-1-10

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!
====

相关阅读

相关文章