2011-03-22 63 views
0

我有一个函数,它也设置了一些全局变量。函数本身工作正常,但每当我第二次调用函数时,全局变量显然会发生变化。jQuery可重用函数和全局变量

这是我的理论体系:

var dataurl; 
var datafunction; 

function GetData(_url, _function) 
{ 
    dataurl = _url; 
    datafunction = _function; 
} 

//Afterwards dataurl and datafunction will used by other functions. 

现在,我很新的jQuery和我不知道如何以适当的方式,因此可以重复使用更多的则1次创建此。有人能帮助我在正确的方向吗?

+0

我们确实需要看到比这更多的代码。 – ken 2011-03-22 16:42:12

+0

你究竟想要做什么?这也不是真正的jQuery,它只是javascript。 – 2011-03-22 16:45:28

+0

我已经多次被告知全球变量很糟糕。 – 2011-03-22 16:49:51

回答

2

它可以创建对象:

var myObject = function() { 
    // Local variable 
    this.data = ''; 

    // Function to call 
    this.callMe = function() { 
     alert(this.data); 
    } 

    // Function to set data 
    this.setData = function(newData) { 
     this.data = newData; 
    } 
} 

var a = new myObject(); 
a.setData('Hello World!'); 
a.callMe(); 
+0

然后你可以用自己的变量创建大量的对象。 – 2011-03-22 16:50:19

+0

谢谢凯文,这就是我一直在寻找的! – Mark 2011-03-22 16:55:01

1

不知道如何,这涉及到一个元素(jQuery插件),但这里是你如何组织你的原型:

var DataHelper = function(_url, _function){ 
    this.dataurl = _url; 
    this.datafunction = _function; 
}; 
DataHelper.prototype = { 
    GetData: function(){ 
     // loads data from storage 
     // using this.dataurl, and this.datafunction 
    } 
}; 

用法:

var dataHelper = new DataHelper('/mysite/url/', function(){ 
    // data function 
}); 

dataHelper.GetData();