Я создал «класс» в javascript, называемый QuoteProductService(), см. Ниже. Я добавил две функции прототипу, и теперь я пытаюсь вызвать одну из функций (getQuoteProductFromArray) изнутри jquery $ .each внутри другой функции (getFakeQuoteProducts). Это не работает. Я попробовал добавить «это», но это также не работает, потому что «это» внутри .each ссылается на текущий элемент цикла.Функция вызова родительского родителя изнутри jquery's .each
Как мне это сделать?
function QuoteProductService() {
}
QuoteProductService.prototype.getQuoteProductFromArray = function(quoteproductarray, quoteproductid){
var founditem=null;
// do stuff
return founditem;
}
QuoteProductService.prototype.getFakeQuoteProducts = function(){
// do something to fill the mappedQuoteProducts array
$.each(mappedQuoteProducts, function (index, quoteproduct) {
if (quoteproduct!=-null) {
if (quoteproduct.parentid != "") {
// this is where it goes wrong :
var parent = getQuoteProductFromArray(mappedQuoteProducts, quoteproduct.parentid);
if (parent != null) {
parent.attachChild(quoteproduct);
}
}
}
});
}
Также часто называют эту переменную 'that' или' self'. –
'self' является зарезервированным словом (afaik) и используется для ссылки на объект' window' браузером. [подробнее на mdn] (https://developer.mozilla.org/en-US/docs/DOM/window.self). Кроме того, это вопрос вкуса, я думаю. Мне лично это не нравится. – Andreas
Отлично! Работает как шарм :) Большое спасибо –