Почему мы используем "{})" в jQuery?
почему мы используем ({ })
?
это делегировать?
Что значит использовать этот синтаксис?
что мы обертываем с ним?
например:
$.ajaxSetup ({ // <-- THIS
error: fError,
compelete: fComp,
success: fSucc
}); // <-- AND THIS
5 ответов:
{}
- это обозначение объекта в JavaScript. Например:$('selector').plugin({ option1: 'value' });
в этом случае вы передаете объект, содержащий настройки для плагина. Плагин может иметь дело с этим как с объектом, на что бы он ни ссылался, например:
settings.option1 //the option you passed in.
конечно, он имеет гораздо больше применений, но это наиболее распространенный пример в jQuery. То же самое верно и для
.animate()
,$.ajax()
,.css()
функции, etc. Все, что принимает свойства обычно использует этот формат.
как и просили, некоторые другие примеры:
Любой объект внутри переданного объекта также может быть функцией, а не только свойствами, например:$("<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: это чрезвычайно краткий и гибкий способ передачи информации.
Я имею в виду, что мы заворачиваем его ?
нет. Это JavaScript object notation (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 );
это либо a 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);
пожалуйста, подробнее об этом здесь:
вопрос был о нотации "({ })".
в этом контексте, в скобках "(...) "после выражения, например $.ajaxSetup, вызывает функцию, указанную выражением для вызова.
выражение внутри круглых скобок (которое может быть списком выражений, разделенных запятыми) приводит к значению(или списку значений), которое является аргументом (АМИ), переданным функции.
наконец, когда "{...}" используется в выражении контекст, он создает объект с указанными свойствами имя-значение. Это похоже на JSON, но это, в более общем смысле, любой юридический литерал объекта JS.