나는 JavaScript에 관해서는 꽤 초록색이라고 인정할 것이다. 그리고 나는 그것을 얻을 때마다 이상한 커브 볼이 나를 당황하게 만들 것이라고 생각한다.JavaScript IIFE
(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));
정말이 일을 호출 할 수 있기를 기대하는 적절한 방법입니다 혼란 무엇 :
나는 이런 JS 파일에 뭔가있어. 나는 아직 사물의 범위를 이해하지 못하고 정직하기가 힘듭니다.
페이지에서 myFunction을 호출하려면 다음과 같이해야 할 것으로 예상됩니까?
onclick="myiife.myFunction(1)"
범위에 관한 내용을 읽었지만 필자는 분명히이 모든 것을 이해하는 데있어 매우 근본적인 것이 빠져 있습니다.
필자가 본 예에서 페이지에서 물건을 실행하기 위해 함수 이름 앞에 iife
이라는 접두사를 붙이면 안되는 다른 사람을 보지 못했습니다.
좋은 추천 도서도 좋습니다.
당신이 무엇을 요구하고 있는지 분명하지 않습니다. 당신은'myiife'를'window'에 붙였고'myiife'는'myFunction'이라는 함수를 가지고 있습니다. 그래서 네, 클릭 핸들러에서'myiife'의 속성 인'myFunction'을 호출하도록 지시해야합니다. 그러나 이벤트 처리기를 처음부터 인라인하지 않는 것이 좋습니다. –