اضبط VAR على دالة مجهولة المصدر مع معلمة؟
-
29-09-2019 - |
سؤال
أنا أبني أول مكتبة OO JS وأواجه مشكلة صغيرة مع قطعة واحدة من المحتمل أن تكون سهلة للغاية ...
لدي هذا:
var storageLocker = function(catalog){
if(catalog){
this.catalog = catalog;
}
//my code...
}()
يجب أن أكون قادرًا على القيام بما تفعله المكتبات الأخرى مثل JQuery حيث يمكنك تحديد عنصر (في حالتي ، حدد عنصرًا محليًا) ثم سلسلة وظائف أخرى إليه. كان لدي كل هذا العمل ، ولكن للحصول على أفضل الممارسات وجعلها أكثر قابلية للتوسيع في وقت لاحق وضعتها في وظيفة مجهولة والآن لا يمكنني معرفة كيفية الحصول على بناء جملة:
storageLocker('localStorageItem').save({"item":"an example item saved to localStorageItem"})
لكن الآن إذا قمت بذلك الآن باستخدام بناء الجملة ، فإنه يعيد هذا الخطأ:
Uncaught TypeError: Property 'storageLocker' of object [object DOMWindow] is not a function
أيه أفكار؟
المحلول
مسح ال ()
في نهاية جسم الوظيفة.
انت كتبت var storageLocker = function(...) { ... }()
, الذي يخلق وظيفة مجهولة ، يسميها, ، ويعين النتائج إلى storageLocker
.
يعادل
function anonymous(...) { ... };
var storageLocker = anonymous();
بما أن الوظيفة لا تعيد أي شيء ، storageLocker
ينتهي به المطاف undefined
, ، وليست وظيفة.