php 映射函数的区别,php – 在javascript中实现支持对象方法作为映射函数的映射?...

我最近尝试在

javascript中使用map的实现来创建一堆项目,然后将它们应用于对象添加方法.

首先是沼泽标准的地图实现.

var map = function (fn, a)

{

for (i = 0; i < a.length; i++)

{

a[i] = fn(a[i]);

}

}

建立.

var translateMenu = new Menu;

var languages = [ ['Chinese' , 'zh-CN']

, ['German' , 'de']

, ['French' , 'fr']

, ['Portugese' , 'pt']

, ['Hindi' , 'hi']

];

而我的功能……(不是匿名的,因为它在将translateMenu添加到mainMenu时会被使用.)

var langItem = function (language, subMenu)

{

return new MenuItem(language[0], 'http://translate.google.com/translate?u=www.example.com&hl=en&ie=UTF-8&tl=en&sl=' + language[1] , "" , subMenu);

}

map ( langItem , languages );

这一切都运行良好,我现在有一个MenuItems数组扔掉.

尝试调用map(Menu.add,语言)会导致Menu的内部变量未定义,并且调用失败.

现在我确定这与Menu.add()方法的范围有关,所以我想如果我也传入了对象,它可能会工作.

我尝试创建一个接受对象和函数的新map函数,但是具有相同的未定义错误.

objMap (fn , obj , a) {

for (i = 0; i < a.length; i++)

{

obj.fn(a);

}

}

objMap ( add , translateMenu , languages ); // failed

我通过使用addAll()扩展Menu来解决这个问题,以获得一个数组,这很好…

Menu.prototype.addAll = function (items){

for (i = 0; i < items.length; i++)

{

this.add(items[i]);

}

}

translateMenu.addAll( languages ); // yay! but I want a more elegant solution.

无论如何,我的问题是,我怎样才能实现map(或类似的泛型函数)来实际支持使用对象方法作为我的映射函数?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值