2011-03-22 19 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();