2016-04-05 15 views
-2

Aşağıdaki kodla oldukça kafam karıştı. Neden "set:" yerine dönüş ifadesi? Set fonksiyonunu nasıl çağırıyor? TeşekkürJavascript: bunun yerine bir nesne yaratılsın mı? Bu nasıl çalışıyor?

BrainBrowser.createTreeStore = function() { 

var tree = {}; 

return { 
    set: function() { 
    var value = arguments[arguments.length - 1]; 
    }, 
+0

: Daha fazla burada

Thanks for new value! 

okuma: günlüğünü göreceksiniz console

document.body.description = "Content container"; 

AçıkBurada hiç bir şey onu aramadı. Tek yaptığı, kullanılmayan yerel bir değişkene ('value' denir) atanır. Kodunda tahmin ediyorum başka şeyler de var. Var ağaçkakan = BrainBrowser.createTreeStore(); gibi bir şey yaptığınızı varsayalım, bunu “argümanlar ile ne yaptığına bağlı olarak” treeStore.set (3, 'küçük', 'argümanlar') olarak adlandırırdınız. – Paulpro

+0

Kafa karıştırıcı nedir? Dönüş ifadesi var, bir işlev olan bir nesne ile bir işlev döndürür, böylece daha sonra BrainBrowser.createTreeStore(). Set() – Eihwaz

+0

@ Paulrpo gibi sth yapabilirdiniz: bu durumda, set yapar: dönüş ifadesi içinde? –

cevap

0

Bu setter tür/getter bu nesnenin kullanıcı değeri daha davranışını (veya okumak değeri) istiyorsanız kullanmak, createTreeStore için tanımlamak bu. Örneğin

:

Object.defineProperty(document.body, "description", { 
    get : function() { 
     console.log("You are reading my value!!!"); 
     return this.desc; 
    }, 
    set : function (val) { 
     console.log("Thanks for new value!"); 
     this.desc = val; 
    } 
}); 

Kullanımı: bu bütün buysa http://robertnyman.com/2009/05/28/getters-and-setters-with-javascript-code-samples-and-demos/