是使用每个方法调用执行的对象函数

Is an object function executed with each method call?

本文关键字:执行 对象 函数 调用 方法      更新时间:2023-09-26

在此:

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

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

不,当您有以下任何行时,会执行某些函数:

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

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

本质上不是(除非在"其他东西"中明确调用)。 它被评估,但这只是 CPU 时间,不足以重要。

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

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

考虑

somefunction = function() {
  // constructor
}

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