Javascript 嵌套函数初始化
Javascript nested functions initialization
我有一个javascript函数,里面包含另一个javascript函数(闭包)
function function1() {
$("button").bind("click", function () {
function2();
});
function function2() {
// code
};
};
我的问题:
当我多次调用 function1() 时,函数 2() 是每次都创建(并保存在内存中)?还是共享的?
function1
不用作构造函数,所以我认为我不应该使用 prototype
每次调用 function1 时,都会创建一个新函数 2 并将其保存在内存中,并作为单击处理程序的一部分进行注册。
由 function1 创建的 function2 无法进行垃圾回收,只要它们可能通过单击处理程序调用。
是的,每次执行function1
时都会创建function2
,这可能是可以避免的低效率。
问题中的代码将更有效地执行,如下所示:
function function2() {
// code
};
function function1() {
$("button").bind("click", function2);
};
因此,function2
被定义一次,并且可能被多次使用。
您为这种效率付出的代价是拒绝function2
访问function1
内部声明的任何变量的机会。如前所述,不存在这样的变量,所以你会没事的。
相关文章:
- JavaScript初始化函数
- require.js+backbone.js:如何构造具有初始化函数的模块
- JavaScript初始化函数
- $(this.el).find()在事件处理程序中工作,而不是在初始化函数(主干.js)中工作
- Do变量声明初始化函数
- 在集合中初始化函数的优雅方式
- 如何在初始化函数中向事件侦听器添加原型函数
- CKEDITOR 的初始化函数不执行
- jQuery UI:通过 AJAX 加载内容后重新初始化函数
- 预初始化函数
- 如何在不使用剑道层次结构网格中的详细初始化函数的情况下获取第一个孩子的兄弟姐妹
- 如何正确使用多个初始化函数
- 有没有办法将初始化函数传递给轨道幻灯片
- 如何在主干中初始化函数后将事件绑定到DOM
- 编写初始化函数的正确方法
- Javascript-从函数中调用/初始化函数
- Rails初始化函数的最佳方式是在ajax和文档准备好之后用Javascript
- 传递参数以初始化函数
- javascript初始化函数块之外的函数的结果,fcc测试
- 调用ng repeat内部的初始化函数