有是使用Javascript VARS /等的基本持久性。你调用一个函数/方法,并且下一次你调用同样的功能/方法,它是从最后一次保存数据。

您可以删除瓦尔当你与他们所做的,但消除再次使用的代码,该实例的优势。

那么什么是正确的方式来编写代码,其可以重复使用,在不同的元素,在同一页内。

因此,我需要编写代码,这样我可以在几个不同的元件指向它,然后相互作用与该代码分离为每个元素的能力。

因此,在PHP(作为一个例子),我会做:

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

在这种情况下它是在三个分离的范围运行相同的代码。我怎样才能做到这一点用JS正常。甚至使用jQuery的延伸()给出了我的问题。

感谢。

有帮助吗?

解决方案

要创建在JavaScript中,你需要写一个构造函数,并调用,使用新的实例。例如:

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);

其他提示

定义本地变量时,使用关键字var(否则他们将默认为全局)。

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

您可以命名空间你的JavaScript使它很像你以后。参阅下面的一个例子。这听起来像你的问题是关系到使用要使用,虽然局部变量全局变量 - 即你声明VAR MYVARIABLE;你的功能之外,但只希望使用它,你的函数中忘记它。在这种情况下,声明变量的函数中来使它局部。

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

这听起来像你正在寻找的是有一个类的实例,并有一个与每个实例相关联的私人数据的能力。

可以使用以下技术做到这一点:

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!";
                            }
}

您可以创建并使用以下语法使用下列之一:

var myFoo = new Foo();

myFoo.myPublicVar = "I can set this!";
myFoo.myPublicFunction();  
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top