Существует класс, как, например:контекста в методе класса, как переменная
var Class = {
initialize: function(data){
this.data = data;
},
add: function(node){
//add object
},
remove: function(node){
//remove object
},
findByIndex: function(id){
},
}
и так далее.
Вопрос: Как импортировать контекст в findByIndex
?
Например, мне нужно использовать findByIndex
в другом классе как функцию. Я понимаю, что это должно быть bind
, но как его использовать в моем классе?
findByIndex:function(id, ???context???){
????
}
/////////////////////// ADD ////////////////// это метод
L.Bookmarks = L.Class.extend({
findByIdRecursive: function(idNumber) {
var data = this.childNodes;
var returnItems = {};
function callback(node) {
if (parseInt(node.id) === idNumber)
returnItems = node;
};
for (var i = data.length - 1; i >= 0; i--) {
this.iterator(data[i], callback, this);
};
return returnItems;
},
iterator: function(node, callback, context) {
console.log(this)
callback.call(this, node);
var nodes = node.childNodes;
if (nodes === undefined) {
return;
};
for (var i = 0; i < nodes.length; i++) {
var iterNode = nodes[i];
this.iterator(iterNode, callback, this);
};
},
});
это еще один класс, который используется метод итератора:
L.Book = L.Class.extend({
findByIdRecursive: function(idNumber) {
var data = this.childNodes;
var returnItems = {};
function callback(node) {
console.log(this)
if (parseInt(node.id) === idNumber)
returnItems = node;
};
for (var i = data.length - 1; i >= 0; i--) {
var itertator = L.Book.iterator.call(L.Bookmarks, data[i], callback)
};
return returnItems;
},
});
Как вы можете видеть, второй класс не метод итератора. Но, наконец он должен использовать итератор, как владелец (с контекстом (это - L.Book))
Что такое 'это data'? – Bergi
Что вы подразумеваете под "importing context"? К чему вы хотите обратиться? Каково тело вашего метода? Пожалуйста, покажите нам, как вы собираетесь «использовать« findByIndex »в другом классе как функцию *». – Bergi
Возможный дубликат [Как изменить контекст функции в javascript] (http://stackoverflow.com/questions/1536164/how-to-change-the-context-of-a-function-in-javascript) – Whymarrh