뭐해(function($){})(jQuery);뜻

8209 단어 javascriptjquery
본문은 What does(function($) {})(jQuery)에서 번역되었습니다.mean?
I am just starting out with writing jQuery plugins. 나는 단지 jQuery 플러그인을 쓰기 시작했을 뿐이다.I wrote three small plugins but I have been simply copying the line into all my plugins without actually knowing what it means. 나는 세 개의 작은 플러그인을 썼지만, 나는 단지 이 줄을 나의 모든 플러그인에 간단하게 복사했을 뿐, 실제로는 이것이 무엇을 의미하는지 모른다.Can someone tell me a little more about these? 누가 나에게 이런 것들에 관한 더 많은 정보를 알려줄 수 있습니까?Perhaps an explanation will come in handy someday when writing a framework:) 언젠가 프레임워크를 쓸 때 유용한 설명이 있을 수도 있습니다:)
What does this do? 이거 뭐 하는 거예요?(I know it extends jQuery somehow but is there anything else interesting to know about this) (어떤 방식으로 jQuery를 확장했는지 알지만, 이것에 대해 또 다른 흥미로운 정보가 있습니다)
(function($) {

})(jQuery);

What is the difference between the following two ways of writing a plugin: 다음 두 가지 플러그인을 작성하는 방법은 어떻게 다릅니까?
Type 1: 유형 1:
(function($) {
    $.fn.jPluginName = {

        },

        $.fn.jPluginName.defaults = {

        }
})(jQuery);

Type 2: 유형 2:
(function($) {
    $.jPluginName = {

        }
})(jQuery);

Type 3: 유형 3:
(function($){

    //Attach this new method to jQuery
    $.fn.extend({ 

        var defaults = {  
        }  

        var options =  $.extend(defaults, options);  

        //This is where you write your plugin's name
        pluginname: function() {

            //Iterate over the current set of matched elements
            return this.each(function() {

                //code to be inserted here

            });
        }
    }); 
})(jQuery);

I could be way off here and maybe all mean the same thing. 나는 여기에서 아주 멀어질 수도 있고, 아마도 모든 뜻이 같을 수도 있다.I am confused. 나는 매우 곤혹스럽다.In some cases, this doesn't seem to be working in a plugin that I was writing using Type 1. So far, Type 3 seems the most elegant to me but I'd like to know about the others as well. 경우에 따라 Type 1로 작성한 플러그인에는 이 기능이 적용되지 않는 것 같습니다.지금까지 타입 3은 나에게 가장 우아한 것 같았지만 다른 장르도 알고 싶었다.
#1층
참조:https://stackoom.com/question/ck6D/뭐해. - function-jQuery. - 의미.
#2층
Firstly, a code block that looks like (function(){})() is merely a function that is executed in place. 우선(function(){})()처럼 보이는 코드 블록은 현지에서 실행되는 기능일 뿐이다.Let's break it down a little. 우리 분해합시다.
1. (
2.    function(){}
3. )
4. ()

Line 2 is a plain function, wrapped in parenthesis to tell the runtime to return the function to the parent scope, once it's returned the function is executed using line 4, maybe reading through these steps will help 두 번째 줄은 괄호로 묶어서 실행 시 함수를 부모 역할 영역으로 되돌려주는 일반 함수입니다.이 함수를 네 번째 줄로 실행하면 이 절차를 통독하는 데 도움이 될 수 있습니다
1. function(){ .. }
2. (1)
3. 2()

You can see that 1 is the declaration, 2 is returning the function and 3 is just executing the function. 1은 성명이고, 2는 반환 함수이며, 3은 실행 함수일 뿐입니다.
An example of how it would be used. 그것을 어떻게 사용하는지에 관한 예.
(function(doc){

   doc.location = '/';

})(document);//This is passed into the function above

As for the other questions about the plugins: 플러그인에 대한 추가 질문:
Type 1: This is not a actually a plugin, it's an object passed as a function, as plugins tend to be functions. 유형1: 이것은 사실상 플러그인이 아니라 함수로 전달되는 대상이다. 왜냐하면 플러그인은 왕왕 함수이기 때문이다.
Type 2: This is again not a plugin as it does not extend the $.fn object. 유형 2: 다시 플러그인이 아닙니다. 확장자가 없기 때문입니다$.fn.It's just an extenstion of the jQuery core, although the outcome is the same. 결과는 같지만, 이것은 jQuery 핵심의 확장일 뿐입니다.This is if you want to add traversing functions such as toArray and so on. 이것은 ToArray 등 역행 함수를 추가하는 경우입니다.
Type 3: This is the best method to add a plugin, the extended prototype of jQuery takes an object holding your plugin name and function and adds it to the plugin library for you. 유형 3: 이것은 플러그인을 추가하는 가장 좋은 방법입니다. jQuery의 확장 원형은 하나의 대상으로 플러그인의 이름과 기능을 저장하고 플러그인 라이브러리에 추가합니다.
#3층
Type 3, in order to work would have to look like this: 유형 3, 작업을 위해서는 다음과 같이 보여야 합니다.
(function($){
    //Attach this new method to jQuery
    $.fn.extend({     
        //This is where you write your plugin's name
        'pluginname': function(_options) {
            // Put defaults inline, no need for another variable...
            var options =  $.extend({
                'defaults': "go here..."
            }, _options);

            //Iterate over the current set of matched elements
            return this.each(function() {

                //code to be inserted here

            });
        }
    }); 
})(jQuery);

I am unsure why someone would use extend over just directly setting the property in the jQuery prototype, it is doing the same exact thing only in more operations and more clutter. 나는 왜 누군가가 직접 jQuery 원형에 확장 속성을 설정하고 더 많은 조작과 혼란 속에서만 같은 일을 하는지 확실하지 않다.
#4층
At the most basic level, something of the form (function(){...})() is a function literal that is executed immediately. 가장 기본적인 단계에서 (function(){...})()는 즉각 실행되는 함수 문자이다.What this means is that you have defined a function and you are calling it immediately. 이것은 함수를 정의했고 바로 호출하고 있음을 의미합니다.
This form is useful for information hiding and encapsulation since anything you define inside that function remains local to that function and inaccessible from the outside world (unless you specifically expose it - usually via a returned object literal). 이러한 형식은 함수 내부에 정의된 모든 내용이 이 함수의 로컬에 보존되어 있고 외부에서 접근할 수 없기 때문에 정보의 숨김과 봉인에 매우 유용하다.
A variation of this basic form is what you see in jQuery plugins (or in this module pattern in general). jQuery 플러그인에서 보거나 이 모듈 모드에서 보십시오.Hence:그래서:
(function($) {
  ...
})(jQuery);

Which means you're passing in a reference to the actual jQuery object, but it's known as $ within the scope of the function literal. 이것은 실제 jQuery 대상에 대한 인용을 전달해야 하지만, 함수 문자 범위 내에서 $ 라고 부른다.
Type 1 isn't really a plugin. 유형 1은 실제 플러그인이 아닙니다.You're simply assigning an object literal to jQuery.fn . 대상 문자만 jQuery.fn 에 할당하면 됩니다.Typically you assign a function to jQuery.fn as plugins are usually just functions. 플러그인은 보통 함수일 뿐이기 때문에 jQuery.fn 함수를 분배합니다.
Type 2 is similar to Type 1; 유형2는 유형1과 비슷하다.you aren't really creating a plugin here. 플러그인을 만드는 것이 아닙니다.You're simply adding an object literal to jQuery.fn . 객체 문자만 jQuery.fn에 추가하면 됩니다.
Type 3 is a plugin, but it's not the best or easiest way to create one. Type 3은 플러그인이지만 이것은 플러그인을 만드는 가장 좋거나 가장 간단한 방법이 아닙니다.
To understand more about this, take a look at this similar question and answer . 이 점에 대해 더 많은 것을 알고 이 유사한 문제와 답안을 보아라.Also, this page goes into some detail about authoring plugins. 이 페이지에서는 제작 플러그 인에 대해서도 자세히 설명합니다.
#5층
A little help: 약간의 도움말:
 // an anonymous function (function () { console.log('allo') }); // a self invoked anonymous function (function () { console.log('allo') })(); // a self invoked anonymous function with a parameter called "$" var jQuery = 'I\\'m not jQuery.'; (function ($) { console.log($) })(jQuery); 

#6층
Just small addition to explanation은 설명의 일부일 뿐입니다.
This structure(function() {})(); 이 구조(function() {})(); is called IIFE(Immediately Invoked Function Expression), it will be executed immediately, when the interpreter will reach this line.IIFE (즉시 호출 함수 표현식) 라고 하는데, 해석기가 이 줄에 도착하면 즉시 실행됩니다.So when you're writing these rows: 따라서 행을 작성할 때 다음을 수행합니다.
(function($) {
  // do something
})(jQuery);

this means, that the interpreter will invoke the function immediately, and will pass jQuery as a parameter, which will be used inside the function as $ . 이것은 해석기가 이 함수를 즉시 호출하고 jQuery를 매개 변수로 전달하며 함수 내부에 $로 사용한다는 것을 의미한다.

좋은 웹페이지 즐겨찾기