在此:
somefunction = function() {
somefunction.method = function() {
//stuff
}
//other stuff
}
somefunction
每次somefunction.method
都执行了吗?
答案 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
}