如何为每个函数动态绑定“this”
How can I bind dynamically "this" for each function?
我正在寻找一种将this
绑定到每个function
的方法。
我还尝试创建一个执行上下文(包装器);这不适用于包含的脚本/模板,其中包含<script>
-Tags
以下是我想要的例子。
例子:
//Added "this" to each function: "this_"
//Inside <script src='external_source_link'></script>
function a() { alert(this) }
a(); //result: "this_"
我需要一种方法来动态检测创建的任何函数。在发生这种情况(创建函数)之前,我应该有可能向函数或函数体添加一些东西(参数和参数)
function a() { } //my dynamically manipulation: a = a.bind("this_");
这不能是包装器{ }
因为 im 还使用 <script>
-Tags 从外部资源加载脚本
<script src="external_source_link"></script>
所以也许有一个操纵Funtion.prototype
的解决方案......
如果我理解得很好,你需要一个proxy
来this
.
如果你愿意,你可以这样做:
function caller(){
proxy(this,callee, "hello");
}
function callee(testStr){
console.log("this: ", this);
console.log("testStr: ", testStr);
}
function proxy(thisToBind, fnToCall){
var args = arguments;
if (args.length > 2) {
delete args[0];
delete args[1];
}
else {
args = undefined;
}
fnToCall.call(thisToBind, args);
}
caller();
如果你想全局覆盖原始Function.prototype.constructor
(对于所有功能),恐怕你不能。但是,请查看Mozilla参考
相关文章:
- 将值动态绑定到jquery中的切换按钮
- 如何使用AnguarJS动态绑定网站数据
- 在extJS 4.2中,有没有一种方法可以将模型值动态绑定到表单
- 我想在ext.js4.2中将树存储动态绑定到树面板中
- 如何让 AngularJS 选取在 JavaScript 中创建的动态绑定
- Emberjs - 将参数动态绑定到视图
- KnockoutJS删除动态绑定
- jquery验证,动态绑定表单验证
- 如何将文件夹中包含的控制器动态绑定到angularjs中的视图
- 在JavaScript中创建动态绑定
- Jquery:如何动态绑定带有onload事件的文本框
- 通过json动态绑定作用域到ng模型
- 如何将变量与函数动态绑定
- jQuery动态绑定文件输入并在函数中检索文件
- 动态绑定onclick事件为for循环中的所有按钮提供相同的值
- typeahead选择事件(jQuery)的动态绑定
- 如何使用 AngularJS 将值动态绑定到链接
- 在jQuery上动态绑定函数
- 将单击事件动态绑定到列表
- 如何为每个函数动态绑定“this”