javascript中的匿名方法有哪些优点和缺点
what are the advantages and disadvantages of anonymous methods in javascript?
在javascript中,有很多不同的方法可以为按钮单击事件等事件设置方法。
例如,假设您检索了一个输入元素"按钮"
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
}
当然,还有一些更明显的答案,比如在需要时进行封装。对于原型,你不必每次都重新创建该函数,这对性能有好处,但对于匿名方法,除了是一种很好的方式或脚本编写流程之外,什么是好的和坏的?
我发现的主要优势是,因为它是内联声明的,所以匿名函数可以访问范围内的所有当前局部变量,这在某些情况下可以极大地简化代码。一个经典的例子是setTimeout()
,您希望它使用上面范围中定义的变量进行操作。
当然,匿名函数也不会干扰您所在的任何命名空间(全局、函数内的本地等),因为它不需要名称。
将匿名函数与addEventListener(type,fn)事件处理程序一起使用的缺点是,您不能仅删除该事件侦听器,因为您没有该函数的句柄。
匿名函数的另一个缺点是,每次使用它的代码运行时都会创建一个新函数,在某些情况下,这根本没有什么区别,但在其他情况下,出于性能原因(例如,如果在循环中做事),可能需要考虑
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- 特定循环(html元素)方法的优点和缺点
- 在JQuery中使用parent()和children()方法的缺点
- 缺点和替代方案 - JS方法链接
- 什么's在对象内部创建原型方法的缺点
- javascript中的匿名方法有哪些优点和缺点
- 在aspx.cs而不是asmx.cs中使用Web方法有什么不同/优点/缺点吗
- 主干视图渲染:fetch-first vs . render-first,两种方法都有缺点
- 闭包对象创建:这两种方法的优点/缺点是什么
- 优点,概述的防止按钮的方法的缺点元素提交其封闭表单
- 以下数据提交方法的缺点是什么?