如何正确_around_的Javascript持久性的工作?
-
06-09-2019 - |
题
有是使用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();
不隶属于 StackOverflow