Development Tip

jQuery에서 "({})"를 사용하는 이유는 무엇입니까?

yourdevel 2020. 10. 13. 19:30
반응형

jQuery에서 "({})"를 사용하는 이유는 무엇입니까?


우리는 왜 사용하고 ({ })있습니까?

대리인입니까?

이 구문을 사용한다는 것은 무엇을 의미합니까?

무엇을 포장하고 있습니까?

예를 들면 :

$.ajaxSetup ({ // <-- THIS
    error: fError,
    compelete: fComp,
    success: fSucc
}); // <-- AND THIS

{}JavaScript의 객체 표기법입니다. 예를 들면 :

$('selector').plugin({ option1: 'value' });

이 경우 설정이 포함 된 개체를 플러그인에 전달합니다. 플러그인은이를 객체로 처리 할 수 ​​있습니다. 예를 들면 다음과 같습니다.

settings.option1 //the option you passed in.

물론 더 많은 용도가 있지만 이것은 jQuery에서 가장 일반적인 예입니다. 동일한 것을도 마찬가지이며 .animate(), $.ajax(), .css()일반적으로 특성을 얻어 기능 등 무엇이든이 포맷을 사용한다.


요청 된대로 몇 가지 다른 예 :
전달 된 객체 내부의 모든 객체는 속성뿐만 아니라 함수가 될 수도 있습니다. 예를 들면 다음과 같습니다.

$("<input>", {
  type: "text",
  focusin: function() { alert("Hi, you focused me!"); }
});    

그러면 해당 입력의 포커스 이벤트가 경고를 갖도록 설정됩니다. 다른 하나는 객체를 확장하고 속성을 추가하는 것입니다.

var person = { first_name: "John" };
$.extend(person, { last_name: "Smith" });
//equivalent to: 
person.last_name = "Smith";
//or:
person["last_name"] = "Smith";

이제 personlast_name속성을. 이는 플러그인에서도 자주 사용되어 기본 설정을 적용한 다음 전달한 설정을 병합하고 지정한 설정으로 덮어 쓰고 나머지는 기본값을 사용합니다.

왜 그것을 사용하고 있습니까? 글쎄요 ... 그것이 JavaScript가 작동하는 방식이며, jQuery 정신으로 정보를 전달하는 매우 간결하고 유연한 방법입니다.


내 말은, 우리가 포장하는 것은 무엇입니까?

아니요. 이것이 바로 JavaScript 객체 표기법 (JSON)입니다. 귀하의 예제에서는 ajaxSetup속성이 다음과 같은 객체로 함수 호출하고 있습니다.

error: fError,
compelete: fComp,
success: fSucc

예를 들어 "사용자"개체를 만들려면 다음과 같이 작성할 수 있습니다.

user = { 
    "name":"Oscar", 
    "lastName":"Reyes"
};

그런 다음 해당 속성 중 하나를 사용합니다.

alert( a.name );

쇼 : 오스카

코드에서 볼 수있는 것은 객체를 생성하고이를 인수로 전달하는 것입니다.

다음과 동일합니다.

var setUpInfo = {
    "error": fError,
    "compelete": fComp,
    "success": fSucc
};  

$.ajaxSetup( setUpInfo );

그것은 중 하나 인 자바 스크립트 객체 리터럴 이 아약스를 통해 매개 변수를 보내기에 올 때 또는 더 구체적으로 JSON. JSON은 JavaScript 개체 리터럴의 하위 집합입니다.

예를 들면 :

// This is JSON data sent via the Ajax request (JSON is subset of JavaScript object literals)
var json = {id: 1, first_name: "John", last_name: "Smith"};

// This is a JavaScript object literal, it is not used for transfer of data so doesn't need to be JSON
var jsol = {type: 'POST', url: url, data: json};

$.ajax(jsol);

여기에서 자세한 내용을 읽어보십시오 :


질문은 "({})"표기법에 관한 것이 었습니다.

이 컨텍스트에서 $ .ajaxSetup과 같은 표현식 다음에 나오는 괄호 "(...)"는 표현식에 지정된 함수가 호출되도록합니다.

괄호 안의 표현식 (쉼표로 구분 된 표현식 목록 일 수 있음)은 함수에 전달 된 인수 인 값 (또는 값 목록)을 생성합니다.

Finally, when "{...}" is used in an expression context, it constructs an object with the name-value properties specified. This is like JSON but it is, more generally, any legal JS object literal.


If you mean in this context:

$("#theId").click( function() { /* body here */ } );

Then the ( function() {}) is an anonymous function. But without an example, can't be sure that's what you mean.

참고URL : https://stackoverflow.com/questions/2594734/why-are-we-using-in-jquery

반응형