是否使用每个方法调用执行对象功能?

时间:2012-06-02 02:10:07

标签: javascript

在此:

somefunction = function() {

    somefunction.method = function() {
         //stuff
    }
//other stuff
}

somefunction每次somefunction.method都执行了吗?

3 个答案:

答案 0 :(得分:3)

不,当你有这些行时会执行某些功能:

somefunction()
somefunction.call()
somefunction.apply()
new somefunction;

somefunction.method()只会执行somefunction.method,但是可以访问somefunction范围内的变量(当然还有自己的局部变量和所有全局变量)。< / p>

答案 1 :(得分:0)

不是固有的(除非在“其他内容”中明确调用它)。它是评估的,但这只是CPU时间而且不够重要。

答案 2 :(得分:0)

没有。但是,每次调用某个函数时,您都会创建一个新的闭包。如果某些函数依赖于其范围之外的任何变量,那么somefunction.method可能会根据调用某个函数的时间而改变,从而产生竞争条件(调试永远不会有趣)。

这可能不是解决问题的正确方法。

考虑

somefunction = function() {
  // constructor
}


somefunction.prototype.method = function() {
  //stuff
}