2
在JavaScript中有很多不同的方法来设置一个方法,如按钮点击事件。在JavaScript中匿名方法的优点和缺点是什么?
例如说你retreived输入元件“按钮”
function MyForm(){
//anonymous method
button.click = function(){ //work };
//private method
var handleClick = function() { // work };
button.click = handleClick;
//public method
button.click = outerClickHandle;
}
//public
function outerClickHandle(){
// work
}
//prototype
MyForm.prototype.outerClickProto(){
//work
}
当然一些更明显的答案如封装的期望当存在。并且,对于原型而言,每次都不需要重新创建该功能,这对性能有好处,但对于匿名方法而言,除了作为一种好方法或写脚本的流程之外,什么是好的和坏的?
关于命名空间的一个非常好的观点,我会牢记前进。 – tam 2012-02-03 05:09:30
匿名函数的另一个缺点是每次使用它的代码运行时都会创建一个新函数,在某些情况下它根本没有任何区别,但在其他情况下可能需要考虑性能方面的原因(例如,如果执行某些操作在一个循环中)。 – nnnnnn 2012-02-03 06:42:08
我会建议上面的答案被编辑,包括nnnnnn的提交,因为功能和相关闭包消耗的内存可以变得显着。匿名和私有方法分别为一个对象和一个共享执行环境(闭包)模式化。公共方法不创建函数对象,它使用为公共函数创建的函数对象。如果您打电话给MyForm一次,您将看不到差异,将其称为10,000次,您肯定会这样做。 – chuckj 2012-02-03 07:54:39