Я признаю, что я довольно зеленый, когда дело доходит до JavaScript, и это не помогает, что каждый раз, когда я думаю, что у меня это получается, какой-то странный кривый мяч сбивает меня с толку.
У меня есть файл js примерно так:
(function (myiife, $) {
var myArrayOfThings = [];
myiife.myFunction = function (id) {
var cachedThing = myiife.getFromArray(id);
if (cachedThing === null) {
// get from server
} else {
// do something with cached item
}
};
myiife.getFromArray = function (idToFind) {
for (var i = 0, len = myArrayOfThings; i < len; i++) {
if (myArrayOfThings[i].Id=== idToFind) {
return myArrayOfThings[i]; // Return as soon as the object is found
}
}
return null;
};
}(window.myiife= window.myiife|| {}, jQuery));
Что меня действительно смущает, так это правильный способ ожидать, что вы сможете называть вещи. Я думаю, я действительно еще не понимаю масштаб вещей, и я изо всех сил пытаюсь быть честным.
Ожидается ли, что если я захочу вызвать myFunction со страницы, она ДОЛЖНА выглядеть так?
onclick="myiife.myFunction(1)"
Я читал материалы о масштабах, но, очевидно, мне все еще не хватает чего-то очень фундаментального в моем понимании всего этого.
Из примеров, которые я видел, я не вижу других, которые, похоже, должны ставить имена функций с префиксом iife
, чтобы выполнять что-то со страницы.
Любое хорошее рекомендуемое чтение также будет оценено.
myiife
кwindow
, аmyiife
имеет свойство, представляющее собой функцию с именемmyFunction
. Так что да, в вашем обработчике кликов вам нужно сказать ему вызыватьmyFunction
, который является свойствомmyiife
. Однако лучше вообще не встраивать обработчики событий. - person Matt Burland   schedule 14.02.2014