【发布时间】:2016-04-20 14:16:57
【问题描述】:
有一段代码:
var object = {
findById: function(idNumber) {
var data = this.childNodes;
var returnItems = {};
function callback(node) {
if (parseInt(node.id) === idNumber)
returnItems = node;
};
function iterator(node, callback) {
callback(node);
var nodes = node.childNodes;
if (nodes === undefined) {
return;
};
for (var i = 0; i < nodes.length; i++) {
var iterNode = nodes[i];
iterator(iterNode, callback);
};
};
function bind(func, context) {
return function() { // (*)
return func.apply(context, arguments);
};
};
for (var i = data.length - 1; i >= 0; i--) {
iterator(data[i], callback);
};
return returnItems;
},
}
如何将上下文导入迭代器和回调函数? 如果我将 console.log(this) 放入函数 iterator() - 这将是“窗口”,但不是我的对象。 它也不应该是 this.callback this.iterator 等。 据我了解,它应该像调用/应用或绑定。 怎么做?
【问题讨论】:
-
我认为 $.proxy 是你要找的 stackoverflow.com/questions/4986329/…
-
@Failwyn 这个问题中没有提到 jQuery
标签: javascript function callback this