首页 新闻 会员 周边

js低手请教关于回调的一个问题

0
悬赏园豆:10 [待解决问题]

1.这样为什么不可以插入

function eachOne(str,callback) {
  var arr = str.split(',');
  var i = 0;
  for (; i < arr.length; i++) {
    callback(arr[i]);
  }
}
var stack = [];
eachOne('1,2,3,4',stack.push);
alert(stack);

 

2.而这样又可以

function eachOne(str,callback) {
  var arr = str.split(',');
  var i = 0;
  for (; i < arr.length; i++) {
    callback(arr[i]);
  }
}
var stack = [];
var stackOp={push:function(elem){ stack.push(elem);}};
eachOne('1,2,3,4',stackOp.push);
alert(stack);

空头支票的主页 空头支票 | 初学一级 | 园豆:50
提问于:2013-04-18 16:40
< >
分享
所有回答(3)
0
function eachOne(str,callback) {
  var arr = str.split(',');
  var i = 0;
  for (; i < arr.length; i++) {
    callback.call(stack,arr[i]);
  }
}
var stack = []; 
eachOne('1,2,3,4',stack.push);
alert(stack);

这样就可以了
Yu | 园豆:12980 (专家六级) | 2013-04-18 17:05

这样是可以,但这就和stack这个对象耦合了,未达到效果

支持(0) 反对(1) 空头支票 | 园豆:50 (初学一级) | 2013-04-18 20:53

@空头支票: 那就这样

 

function eachOne(str,callback) {
  var arr = str.split(',');
  var i = 0;
  for (; i < arr.length; i++) {
    callback(arr[i]);
  }
}
var stack = [];
eachOne('1,2,3,4',function(elem){ stack.push(elem);});
alert(stack);

支持(0) 反对(0) Yu | 园豆:12980 (专家六级) | 2013-04-19 08:30

@Yu: 我知道这样可以,在我提的问题中也把这个答案列出来,我最初是想问它们两种方法有什么区别,为什么 ,你没看清问题

支持(0) 反对(0) 空头支票 | 园豆:50 (初学一级) | 2013-05-24 14:18
0

楼上正解

相忘于江湖 | 园豆:229 (菜鸟二级) | 2013-04-26 16:10
0

是个好问题。。

积跬步 | 园豆:214 (菜鸟二级) | 2013-05-02 17:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册