Neden kullanıyoruz ({ })
?
Temsilci mi?
Bu sözdizimini kullanmak ne anlama geliyor?
Ne ile uğraşıyoruz?
Örneğin:
$.ajaxSetup ({ // <-- THIS
error: fError,
compelete: fComp,
success: fSucc
}); // <-- AND THIS
Neden kullanıyoruz ({ })
?
Temsilci mi?
Bu sözdizimini kullanmak ne anlama geliyor?
Ne ile uğraşıyoruz?
Örneğin:
$.ajaxSetup ({ // <-- THIS
error: fError,
compelete: fComp,
success: fSucc
}); // <-- AND THIS
{}
JavaScript'teki nesne gösterimi. Örneğin:
$('selector').plugin({ option1: 'value' });
Bu durumda, ayarlarınızı içeren bir nesneyi eklentiye geçirirsiniz. Eklenti, bunun bir nesne olarak ele alınabilir.
settings.option1 //the option you passed in.
Tabii ki çok daha fazla kullanım var, ama bu jQuery'deki en yaygın örnek. Aynı şey için de geçerlidir .animate()
, $.ajax()
, .css()
işlevler, vb. Özellikleri alan bir şey genellikle bu biçimi kullanır.
İstendiği gibi, diğer bazı örnekler:
Geçirilen nesnenin içindeki herhangi bir nesne, sadece özelliklerle değil, aynı zamanda bir işlev de olabilir:
$("<input>", {
type: "text",
focusin: function() { alert("Hi, you focused me!"); }
});
Bu, bu girdinin odak olayının bir uyarıya sahip olmasını sağlar. Bir diğeri, bir nesneyi genişleterek, buna benzer özellikler ekliyor:
var person = { first_name: "John" };
$.extend(person, { last_name: "Smith" });
//equivalent to:
person.last_name = "Smith";
//or:
person["last_name"] = "Smith";
şimdi person
var last_name
özelliği. Bu, genellikle varsayılan ayarları almak için eklentiler tarafından kullanılır, ardından girdiğiniz tüm ayarları birleştirir, geri kalanlar için varsayılanları kullanarak, belirttiğiniz tüm ayarlarla üzerine yazabilirsiniz.
Neden kullanıyoruz? Peki ... JavaScript bu şekilde çalışır ve jQuery ruhunda: bilgiyi iletmek için son derece esnek ve esnek bir yoldur.
Demek istediğim, onu nasıl sarıyoruz?
Hayır. Bu, JavaScript nesne notasyonu (JSON). Örneğinizde, işlevi çağırıyorsunuz ajaxSetup
özellikleri olan bir nesne ile:
error: fError,
compelete: fComp,
success: fSucc
Örneğin, yazabileceğiniz bir "kullanıcı" nesnesi oluşturmak için:
user = {
"name":"Oscar",
"lastName":"Reyes"
};
Ve sonra onun özelliklerinden birini kullanın:
alert( a.name );
Gösterir: Oscar
Orada gördüğünüz şey (kodunuzda) bir nesnenin yaratılması ve bir argüman olarak aktarılmasıdır.
Buna eşdeğer olacaktır:
var setUpInfo = {
"error": fError,
"compelete": fComp,
"success": fSucc
};
$.ajaxSetup( setUpInfo );
Bu bir JavaScript nesnesi değişmez veya Ajax üzerinden parametreler gönderilirken daha spesifik olarak JSON. JSON, JavaScript nesne değişmezlerinin alt kümesidir.
Örneğin:
// 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);
Lütfen burada daha fazla bilgi edinin:
Soru "({})" notasyonu hakkındaydı.
Bu bağlamda, $ .ajaxSetup gibi bir ifadenin ardından parantez "(...)" ifadesi, çağrılacak ifadenin belirttiği işleve neden olur.
Parantez içindeki ifade (virgülle ayrılmış ifadeler listesi olabilir), işleve geçirilen argüman (lar) olan bir değer (veya değer listesi) ile sonuçlanır.
Son olarak, bir deyim bağlamında "{...}" kullanıldığında, belirtilen ad-değer özelliklerine sahip bir nesne oluşturur. Bu JSON gibidir, ancak daha genel olarak herhangi bir yasal JS nesnesi hazırlayıcısıdır.
Bu bağlamda demek istiyorsan:
$("#theId").click( function() { /* body here */ } );
Sonra ( function() {})
anonim bir işlevdir. Ama bir örnek olmadan, ne demek istediğinden emin olamazsın.