我如何传递一个非'this'上下文到函数
How do I pass a non 'this' context to a function
这与this
无关,因此func.apply
和func.call
不适用(无双关语)。
我需要将一个函数的当前上下文传递给另一个函数,我的意思是我需要访问函数中的命名局部变量。
这里有一个有点做作的例子:
function doSomething(f){
eval(f)
}
function test(callback){
doSomething("callback.apply(1, 2)")
}
test(function(a, b){
console.log(a + b);
})
我如何将局部变量callback
传递给doSomething
,使其可用于eval
-我认识到这是一个人为的例子。这可能吗?
我知道嵌套上下文延续,所以如果我要在test
中声明doSomething
,这就可以了。
如果你真的想使用eval
…你可以创建一个字符串格式的IIFE,并传入你想要的参数,几乎就像你以前做的那样:
function doSomething(f) {
eval(f)
}
function test(callback) {
doSomething('(' + callback.toString() + ')(1, 2)');
}
test(function(a, b) {
console.log(a + b);
})
bind for u
function doSomething(f){
eval(f());
}
function test(callback){
doSomething(callback.bind(null,1,2))
}
test(function(a, b){
console.log(a + b);
})
相关文章:
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- extjs中事件处理程序函数中的THIS上下文
- 在对象文字的声明中继承上下文(this)?“自我”还好吗
- 是否可以绑定javascript函数,使其本地上下文与“this”相同
- 当作为脚本运行时.js Node中“this”的上下文是什么
- 变量“this”上下文在重新赋值变量后未更新
- 浏览器化模块中的“this”上下文
- Node.js:在模块作用域中使用“this”运算符的上下文是什么
- 使用“this”时,函数会丢失上下文 - Raphael JS
- JavaScript承诺:具有绑定的深度嵌套上下文(this)
- d3.js/CoffeeScript:访问mouseover中类和路径的执行上下文(this)
- Angular服务"this"正在更改窗口对象的上下文
- 传递一个原型's函数作为参数而不丢失'this'上下文
- 全局上下文和“this”;在node . js
- ' this '在全局上下文中和内部函数中
- 保留'this'上下文
- 在回调中调用Js `this`上下文
- JS bind(),我需要两个“this”上下文
- 我如何传递一个非'this'上下文到函数
- 调用带有promise和'this'上下文