用当前变量值动态创建Javascript函数
Dinamically create Javascript function with current variable values
我不知道如何正确询问我需要什么,所以让我试试。。
如何将当前变量内容(文字)传递给按常规创建的函数?
也许有了以下代码,你会更好地理解:
function MyClass(){
for (i = 1; i <= 10; i++){
this['show' + i] = function(){
alert('You called show' + i);
};
}
}
var obj = new MyClass();
obj.show3();
我希望在警报中显示的是"您呼叫了show3",而不是"show11"。
感谢
由于javascript没有块作用域(直到ECMAScript 6中的let
),您的原始函数将绑定相同的i值。调用另一个生成自己的新函数可以避免这种情况,并给i不同的值。
function MyClass() {
for (i = 1; i <= 10; i++) {
this['show' + i] = myFunc(i);
}
}
function myFunc(i) {
return function() {
alert(i);
}
}
var obj = new MyClass();
obj.show3();
JavaScript中有一种称为绑定的机制。您可以将作用域和任何变量绑定到函数,以便在函数内部使用它们。作用域将在函数内定义this
关键字。所有其他绑定变量都可以作为参数使用,因此本例中的i
变量将不是全局作用域,而是局部作用域,并在函数创建中传递值。
for (i = 1; i <= 10; i++){
this['show' + i] = function(i){
alert('You called show' + i);
}.bind(this,i);
}
相关文章:
- 使用Web Html表单创建Javascript数组
- 使用私有成员创建JavaScript类
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)
- Mediawiki皮肤创建-Javascript don'Don’t get load
- 为自定义网站创建JavaScript搜索框,创建显示搜索结果的弹出窗口
- 为表菜单创建javascript
- 使用jstl c:forEach在迭代jsp bean上创建javascript json对象
- 从字符串创建 JavaScript 函数
- 使用计算名称创建 JavaScript 对象
- 什么是创建 JavaScript 类的适当、现代和跨浏览器安全的方法
- 创建 JavaScript 构造函数时的语法错误
- 使用 C# 中的代码隐藏在单击按钮时创建 Javascript 警报
- php在foreach循环中创建javascript
- 创建javascript模块
- 如何从数组中动态创建javascript变量
- 创建JavaScript库:更改实际图像
- 如何创建javascript执行器,使元素在selenium webdriver中可见
- 如何在我的服务器上创建javascript,该服务器使用该服务器上的后端,并将在另一个网站上使用
- 创建javascript子类型的实例会产生意外行为
- 如何创建javascript顺序动画