恕我直言看不懂你这样做的意义, javascript语言本身就可以实现你想要的功能, 你可以看看Function.prototype.bind函数的用法
Item.js的修改
onClickItem1: function(){
this._onClickHandler([this._data + "1"]);
},
onClickItem2: function(){
this._onClickHandler([this._data + "2"]);
},
setOnClickHandler: function(handler){
this._onClickHandler = handler;
}
Main.js的修改
// use this for initialization
onLoad: function () {
for(var i = 0; i < 15; i++){
var item = cc.instantiate(this.item);
if(item) {
var script = item.getComponent("Item");
script.setData(i);
// var cb = new CallFunc();
// script._cb = cb.handle(this.onClickBtn, this, null);
script.setOnClickHandler(this.onClickBtn.bind(this, "this is a binded data"));
this.scrollerView.content.addChild(item);
}
}
},
// dataBinded是通过bind增加的参数, data是调用回调的时候传入的参数
onClickBtn(dataBinded, data){
this.label.string = "点击了按钮: " + dataBinded.toString() + data.toString();
var item = cc.instantiate(this.msg);
this.node.addChild(item);
var script = item.getComponent("Msg");
script.setData(data);
}