SORU
24 Aralık 2010, Cuma


Nasıl genişletecek() jQuery iş?

Bir eklenti olarak bunu gördüm:

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

Nasıl çalışır?

extend() ne yapar?

CEVAP
12 Ocak 2011, ÇARŞAMBA


Birden Çok Parametre

Belgelere uzatmak nasıl işlediğini açıklayan kesin değil, küçük bir test yaptım:

var a = {foo: 1, bar: 1};
var b = {foo: 2, baz: 2};
var c = {foo: 3};
var r = jQuery.extend(a,b,c);
console.log("A: Foo="   a.foo   " Bar="   a.bar   " Baz="   a.baz);
console.log("B: Foo="   b.foo   " Bar="   b.bar   " Baz="   b.baz);
console.log("C: Foo="   c.foo   " Bar="   c.bar   " Baz="   c.baz);
console.log("R: Foo="   r.foo   " Bar="   r.bar   " Baz="   r.baz);
console.log("A === R?: "   (a === r));

(console.log işlevi Firebug çalışma; uyarı ile değiştirmek için tasarlanmıştır() veya başka bir çıkış fonksiyonu Eğer isterseniz).

Sonuçlar:

A: Foo=3 Bar=1 Baz=2
B: Foo=2 Bar=undefined Baz=2
C: Foo=3 Bar=undefined Baz=undefined
R: Foo=3 Bar=1 Baz=2
A === R?: true

Bu yazılım sayesinde bir WordPress kullanmak görebiliriz.() uzatmak:

  • Nesne ilk parametresi tarafından sağlanan ile başlar.
  • Ekler ikinci parametre herhangi bir özellik. Eğer bu özellik zaten ilk parametre varsa, üzerine yazılır. İkinci parametre için nesne değişmez.
  • Tekrarlar herhangi bir sonraki parametre ile yukarıda.
  • Döner ilk parametre.

Bu kullanıcı ve varsayılan option nesneleri birleştirmek için yararlı seçenekleri tam bir set almak için

function foo(userOptions) {
  var defaultOptions = {
    foo: 2,
    bar: 2
  };
  var someOtherDefaultOptions = {
    baz: 3
  };

  var allOptions = jQuery.extend(
    defaultOptions,
    someOtherDefaultOptions,
    userOptions
  );
  doSomething(allOptions);
}

foo({foo:1, baz:1});

Unutmayın "" üzerine yazma için geçerli bir değer olduğunu, ancak "tanımsız" değil. boş Bu kullanmak mümkün olabilir.

var a = {foo: "a", bar: "a"};
var b = {foo: null, bar: undefined};
jQuery.extend(a,b);
console.log("A: Foo="   a.foo   " Bar="   a.bar);

Sonuçları:

A: Foo=null Bar=a

Tek Parametre

Eğer ** 16 yaşında, sadece bir nesne o zaman geçirirseniz bir WordPress kullanmak jQuery nesne varsayarkendisi""(örn: bir değiştirilecek) parametre ve nesne "" (örn: ilk ekleme). ikinci ilki Yani:

console.log( "Before: "   jQuery.foo );
jQuery.extend({foo:1});
console.log( "After: "   jQuery.foo );

Sonuçları:

Before: undefined
After: 1

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • alex maybury

    alex maybury

    20 Aralık 2007
  • Derek Banas

    Derek Banas

    12 AĞUSTOS 2008
  • Shantanu Sood

    Shantanu Soo

    3 Kasım 2008