JS的一个问题,不知我错在哪了

A18767101172 2013-10-02 08:44:39


弹出未定义
...全文
135 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
l676331991 2013-10-02
  • 打赏
  • 举报
回复
应该是alert(m(data));才对,不是方括号。 如上的mapper的功能是返回一个隐藏array的map方法的映射器,有点柯里化的韵味。 m(data)等价于data.map(increment);
岑迅 2013-10-02
  • 打赏
  • 举报
回复
看不懂 跑了下 执行到 var m = mapper(increment); 此时 函数mapper(f);参数 f = function(x){return x+1;} m = function(x){x.map(f);} 是不是 少了 等大牛
hch126163 2013-10-02
  • 打赏
  • 举报
回复
自己单步调试
A18767101172 2013-10-02
  • 打赏
  • 举报
回复
谢谢各位,
引用 4 楼 u011461314 的回复:

function mapper(f){
	return function(x){
		var y = x.map(f);
		return y;
		
	}
}
var increment = function(x){
	return x+1;
}
为什么直接 return x.map(f); 不行呢?求解释
zhjdg 2013-10-02
  • 打赏
  • 举报
回复
不能修改,可气可气。 补充: 你都没东西返回。绝对undefined
zhjdg 2013-10-02
  • 打赏
  • 举报
回复

function mapper(f){
	return function(x){
		var y = x.map(f);
		return y;
		
	}
}
var increment = function(x){
	return x+1;
}

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧