Nasıl düzgün _around_ JavaScript sebat çalışmak?

4 Cevap php

JavaScript vars / etc temel sebat yoktur. Bir işlev / yöntem ve aynı işlevi / yöntem, bu son kez verilerini tutan olduğunu diyoruz dahaki sefere diyoruz.

Onlarla yapılır zaman değişkenler silebilirsiniz, ama o örneği tekrar kod kullanarak avantaj kaldırır.

Yani aynı sayfa içinde, farklı unsurları, yeniden kullanılabilir kod yazmak için proper yolu nedir.

Bu nedenle, ben birkaç farklı unsurları işaret böylece kod yazmak ve daha sonra bu kod ile etkileşim yeteneği her eleman için ayrılmış gerekir.

Yani (örnek olarak) PHP yapardım:

$element1 = new MyClass();
$element2 = new MyClass();
$element3 = new MyClass();

Bu durumda üç ayrılmış kapsamları çalışan aynı kod. Nasıl JS ile düzgün yapabilirsiniz. Hatta () jQuery uzatmak kullanarak bana sorun veriyor.

Teşekkürler.

4 Cevap

Bir yapıcı işlevi yazmak gerekiyor JavaScript bir örneğini oluşturmak ve çağırmak için bu yeni kullanarak. Örneğin:

function MyClass( somevalue ) {
   this.somevalue = somevalue;
   this.somefunction = function() {
     alert(somevalue);
   }
}

var instance1 = new MyClass(1);
var instance2 = new MyClass(2);
var instance3 = new MyClass(3);

Yerel değişkenleri tanımlarken (aksi takdirde globalleri varsayılan edeceğiz) var anahtar kelime kullanın.

function foo() {
    var i;
    // code code code code
}

Bunu çok sonra konum ne gibi yapmak için JavaScript namespace edebilirsiniz. Örnek için aşağıya bakın. Sorununuz olsa yerel değişkenler kullanmak isteyen küresel değişkenler ile ilgili gibi ses yok - sen var myVariable beyan yani; sadece fonksiyonu dışında, fakat onu kullanma ve işlevin içinde bunu unutmak istiyorum. Bu durumda, yerel yapmak için fonksiyon içinde değişken bildirmek.

var MyNameSpace = function() {
return {
	sayhello : function() {
		alert("hello");
	},
	saygoodbye : function() {
		alert("see ya");
	}
};

} ();

Ne arıyorsanız bir sınıfın örneği var ve her örneği ile ilişkili özel veri var yeteneği gibi geliyor.

Sen şu tekniği kullanarak bunu yapabilirsiniz:

function Foo()
{
    // Member variable only visible inside Foo()

    var myPrivateVar;       

    // Function only visible inside Foo()

    var myPrivateFunction = function() 
                            { 
                                alert("I'm private!");
                            }

    // Member variable visible to all

    this.myPublicVar = "Hi, I'm public!";

    // Function visible to all

    this.myPublicFunction = function()   
                            {
                                myPrivateVar = "I can set this here!";
                            }
}

Oluşturabilir ve aşağıdaki sözdizimini kullanarak bunlardan birini kullanabilirsiniz:

var myFoo = new Foo();

myFoo.myPublicVar = "I can set this!";
myFoo.myPublicFunction();