javascript中的双上下文切换
Double context switching in javascript
本文关键字:上下文切换 javascript 更新时间:2023-09-26
我正在寻找处理这种双上下文切换情况的最佳方法。
function myObject() {
this.data = {};
}
myObject.prototype.each = function(func) {
if (func) {
for (var key in this.data) {
func(key);
}
}
}
function myObject2() {
this.data = {};
}
myObject2.prototype.someFunc = function(o) {
// o = myObject
o.each.call(this, function(key) {
this.data[key] *= o.data[key];
});
}
在myObject2.someFunc中,我使用调用来更改上下文,以便访问myObject2的数据。然而,正因为如此,在myObject的each方法中,它现在引用了myObject2。如果我不使用调用,那么我就无法访问myObject2中的数据。
我曾想过使用apply,然后将原始对象作为参数传递并将其传递回,但我正在寻找一个更优雅的解决方案,它不需要我更改myObject.each的原始定义。
谢谢!
看起来它应该是一个通用函数:
function each( obj, func, ctx ) {
if( func ) {
for ( var key in obj ) {
func.call( ctx || null, key, obj[key] );
}
}
}
myObject2.prototype.someFunc = function(o) {
each( o.data, function( key, value ) {
this.data[key] = value;
}, this );
};
相关文章:
- 将函数的上下文应用于javascript变量
- 角度:在ng重复上切换图像
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- 根据某些条件在视图之间切换
- 触摸移动时切换到新元素
- 使用JQuery的动态上下文菜单
- 单击时切换两个图像
- jquery在表单之间切换
- 如何访问UIWebView'的子窗口上下文
- Nodejs API控制器,用于在API之间切换
- JavaScript-切换“;全部检查”;复选框true/false
- Rails/Javascript链接到用于切换多个元素的函数
- 不能在同一页上进行多个jquery幻灯片切换
- javascript中的双上下文切换
- 如何在 dust.js 助手中切换上下文
- Node.js&两个请求之间的Express/Can上下文切换可以是同步代码
- 在滑动菜单中切换上下文的实践
- Node.js:根据上下文切换npm脚本
- 在上下文切换上重新应用点击绑定
- Meteor:为什么我会通过将函数(){}切换为()=>来丢失我的数据上下文;{}