왜 우리는 ({ })
을 사용합니까?jQuery에서 "({})"을 사용하는 이유는 무엇입니까?
위임자입니까?
이 구문을 사용한다는 것은 무엇을 의미합니까?
무엇을 포장하고 있습니까? 예를 들어
:
$.ajaxSetup ({ // <-- THIS
error: fError,
compelete: fComp,
success: fSucc
}); // <-- AND THIS
왜 우리는 ({ })
을 사용합니까?jQuery에서 "({})"을 사용하는 이유는 무엇입니까?
위임자입니까?
이 구문을 사용한다는 것은 무엇을 의미합니까?
무엇을 포장하고 있습니까? 예를 들어
:
$.ajaxSetup ({ // <-- THIS
error: fError,
compelete: fComp,
success: fSucc
}); // <-- AND THIS
{}
는 자바 스크립트 객체 표기법입니다. 예 :
$('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";
지금 person
last_name
는 특성을 갖는다. 이것은 플러그인에서도 자주 사용되며 기본 설정을 사용하고 전달한 모든 설정을 병합하고 지정한 설정으로 덮어 쓰며 나머지는 기본값으로 사용합니다.
왜 우리가 사용하고 있습니까? 음 ... 이것이 JavaScript가 작동하는 방식이며 jQuery 정신에서 볼 때 정보를 전달하는 데 매우 간결하고 유연한 방법입니다.
$("#theId").click(function() { /* body here */ });
는 그 다음 (function() {})
는 익명 함수입니다 :이 상황에서 의미하는 경우
"왜"라는 말을 사용하면 변수 수를 함수에 쉽게 전달할 수 있습니다. (그건 나에게 가장 합리적인 문구입니다.) –
아주 좋은 답변이지만, 다른 사용법에 대한 예제를 추가하면 아주 좋습니다. – uzay95
@ uzay95 - 내 머리 꼭대기에서 몇 가지 예를 추가했습니다. 거기에는 많은 사례가 있습니다. –
그것은 중 하나 인 JavaScript object literal 또는 더 구체적으로 JSON은 Ajax를 통해 매개 변수를 보내기에 올 때. 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);
여기에 대한 자세한 내용을 읽어 보시기 바랍니다 :
JSON (위키 백과)
. 그러나 예를 들자면 그게 무슨 뜻인지 확신 할 수 없습니다.
위임 기능과 같습니다. – uzay95
simliar. 익명 함수는 본질적으로 재사용을 계획하지 않는 "인라인 함수"입니다. 대리자가 예상되는 곳이면 익명의 함수를 사용할 수 있습니다. 그것이 여기에서 작동하는 이유입니다. click 함수는 델리게이트를 기대합니다 (다른 곳에서 함수를 재사용 할 계획이라면 델리게이트 함수를 사용할 것입니다). – Armstrongest
내말은 우리가 포장하고있는 내용입니까?
아니요. JSON (JavaScript Object Notation)입니다. 귀하의 예제에서 당신은 누구의 재산 개체와 기능 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이 아닙니다. 멤버 이름을 따옴표로 묶어야합니다. 그것은 물론 완벽하게 유효한 자바 스크립트입니다. 또한 사용자 객체는'='대신':'을 사용해야합니다 – friedo
- fixed = with : – OscarRyz
JavaScript 객체 리터럴 표기법이지만 JSON은 아닙니다. http://json.org에서 "JSON은 JavaScript 프로그래밍 언어의 하위 집합을 기반으로합니다 .JSON은 완전히 언어 독립적 인 텍스트 형식이지만 C 언어 계열의 프로그래머에게 익숙한 규칙을 사용합니다. C, C++, C#, Java, JavaScript, Perl, Python 및 기타 많은 " –
문제는 표기에 대해이었다 "({})".
이 컨텍스트에서 $ .ajaxSetup과 같은 표현식 뒤에 "(...)"을 붙이면 표현식에 의해 지정된 함수가 호출됩니다.
괄호 안의 표현식 (쉼표로 구분 된 표현식 목록 일 수 있음)은 함수에 전달 된 인수 값 또는 값 목록을 가져옵니다.
마지막으로 표현식 컨텍스트에서 "{...}"을 사용하면 이름 - 값 속성이 지정된 객체가 생성됩니다. 이것은 JSON과 비슷하지만 일반적으로 합법적 인 JS 객체 리터럴입니다.
http://stackoverflow.com/questions/1509535/javascript-false-and-false/1509664#1509664는 겉보기에는 관련없는 질문이지만, 한 가지에 대한 관련 답변을 사용하면 걸릴 수 있습니다. –