我正在使用angularjs和phonegap,並且發現了這個代碼,我「知道」它做了什麼,但我不知道它是如何工作的。我仍然對先進的js概念感到滿意,所以如果你可以有一點描述性,我可以真的很感激它。javascript函數回調
問題:
在回調註冊,我沒有看到以下變量的任意位置設置:參數(5號線)和FN(10號線)。它們是在函數原型中聲明的嗎?
第9行和第15行的代碼塊是否設置了「this」值,以便在回調中「this」值指向相同的對象?我們稱之爲應用「這個」值的技巧是什麼?
myApp.factory('phonegapReady', function() {
return function (fn) {
var queue = [];
var impl = function() {
queue.push(Array.prototype.slice.call(arguments));
};
document.addEventListener('deviceready', function() {
queue.forEach(function (args) {
fn.apply(this, args);
});
impl = fn;
}, false);
return function() {
return impl.apply(this, arguments);
};
};
});