[英]How arguments are handled in Require JS define function
以下代碼取自Internet上的教程。
purchase.js
define(["credits","products"], function(credits,products) {
console.log("Function : purchaseProduct");
return {
purchaseProduct: function() {
var credit = credits.getCredits();
if(credit > 0){
products.reserveProduct();
return true;
}
return false;
}
}
});
define函數的第二個參數是匿名函數。 此函數有兩個參數,即信用和產品。 這兩個參數在代碼中用作對象。 這些對象如何分配給這兩個參數?
credits.js
define(function() {
console.log("Function : getCredits");
return {
getCredits: function() {
var credits = "100";
return credits;
}
}
});
prodcts.js
define(function(product) {
return {
reserveProduct: function() {
console.log("Function : reserveProduct");
return true;
}
}
});
當require()決定調用匿名的“第二個參數”函數(在加載所有依賴項時會發生)時,它將首先使用第一個參數中的字符串數組查找您碰巧要查詢的不同模塊。 然后,它將創建一個匹配數組,其中包含從這些腳本返回的實際模塊對象,並使用該數組調用您的匿名函數。
如果可以幫助理解,有時與匿名函數的參數相比,如果有人偶然以錯誤的順序列出了一個依賴關系,我的組織幾乎看不到運行時問題。 (因此,如果匿名函數的參數順序相反,則它們的分配將被顛倒,代碼將無法正常工作)
RequireJS將加載這兩個文件(product.js文件名拼寫錯誤),並且它們具有返回對象的匿名函數。 這些對象然后被饋送到函數中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.