2011-02-14 19 views

cevap

3

parametreyi farklı bir ad verin deneyin:

function Foo() { 
     var myPrivateBool = false, 
      myOtherVar; 
     this.bar = function(param) { 
      myPrivateBool = true; 
      myOtherVar = param; 
     }; 
     this.baz = function() { 
      alert(myOtherVar); 
     }; 
    } 


var inst = new Foo; 

inst.bar("new value"); 

inst.baz(); // alerts the value of the variable "myOtherVar" 

http://jsfiddle.net/efqVW/


Ya da isterseniz değerini ayarlamak için özel işlevi oluşturun. http://jsfiddle.net/efqVW/1/

+1

Bunun olması gerektiği için korkuyordum = (sanırım bu js hatası – Garrett

+0

@ Garrett: Evet, "bar" işlevindeki biçimsel parametreler, kapsam zincirinde yapıcının değişkenlerinden daha yakın olacaktır. – user113716

+0

@Garrett : Değeri ayarlamak için özel bir işlev yaratabileceğinizi varsayalım, ama istediğin şeyin olduğundan emin değilim. – user113716

-2

this.myOtherVar = myOtherVar;

+3

O değişken değil, bir özellik ayarlar. – user113716

+1

bunu halka açık yapan kişi değil mi? – Garrett

-1

function Foo() { 
    var myPrivateBool = false, 
     myOtherVar; 
    function setMyOtherVar(v) { 
     myOtherVar = v; 
    } 
    this.bar = function(myOtherVar) { 
     myPrivateBool = true; 
     setMyOtherVar(myOtherVar); 
    }; 
    this.baz = function() { 
     alert(myOtherVar); 
    }; 
} 


var inst = new Foo; 

inst.bar("new value"); 

inst.baz(); 

Ben this.myOthervar = myOtherVar düşünüyorum;

+0

OP, bir kurucu olarak Foo'yu kullanıyor, bu yüzden kurucu çağrıldığında (bir kurucu olarak), 'bu 'oluşturulmakta olan yeni nesneyi referans gösterecektir. – user113716

-2

Belki javascript davası hassasiyetinin yararlanarak, MyOtherVar olarak myOtherVar ilan edebilir genel ad bozuk ve pencere nesnesine değişken window.myOtherVar oluşturulan, daha sonra fonksiyonun içine MyOtherVar = myOtherVar atayın:

function Foo() { 
    var MyPrivateBool = false, 
     MyOtherVar; 
    this.bar = function(myOtherVar) { 
     MyPrivateBool = true; 
     MyOtherVar = myOtherVar; 
    }; 
} 
+0

Bu, Sermaye vaka isimleri kongre başına Sınıflar için olduğu gibi kötü bir uygulamadır, örneğin: Nesne, Tarih, Matematik, Kişi, Araç, vb. – igor

İlgili konular