2015-02-07 106 views
0

我不知道我怎樣才能使它更多鈔票來擺脫把「新」功能之前的之前,例如:我怎麼能擺脫把「新」功能

new functionToDo("thingsToDo").iGotYouBruh("Halo Humans"); 

是有沒有「新」這樣做的可行方法?

這裏是我想不「新」,使用代碼:

function local (title) { 
    var storeTitle = title; 
    this.addL = function(lString) { 
     var storeText = lString; 
     localStorage.setItem(storeTitle, storeText); 
     console.info("Locally stored " + storeTitle.toUpperCase() + " with " + storeText.substring(0, 10) + "... As text."); 
    }; 
    this.removeL = function() { 
     localStorage.removeItem(storeTitle); 
     console.info("Locally removed " + storeTitle + "."); 
    }; 
    this.getL = function() { 
     localStorage.getItem(storeTitle); 
     console.info("Locally got string of " + storeTitle + ": " + localStorage.getItem(storeTitle)); 
    }; 
}; 

和這裏就是我會做調用該函數:

new local("storedElement").getL(); 
+1

我的意思是這真的是一個大交易? – 2015-02-07 00:56:38

+1

我相信你指的是[Object.create()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create)? – 2015-02-07 00:57:23

+0

@自己對我來說,現在它已經解決了,我會對答案進行一些研究並從中學習。 – 2015-02-07 00:58:01

回答

3

這是可能的通過檢查this是否是該函數本身的一個實例,否則返回一個新實例:

function local (title) { 
    if (!(this instanceof local)) { 
     return new local(title); 
    } 

    var storeTitle = title; 
    this.addL = function(lString) { 
     var storeText = lString; 
     localStorage.setItem(storeTitle, storeText); 
     console.info("Locally stored " + storeTitle.toUpperCase() + " with " + storeText.substring(0, 10) + "... As text."); 
    }; 
    this.removeL = function() { 
     localStorage.removeItem(storeTitle); 
     console.info("Locally removed " + storeTitle + "."); 
    }; 
    this.getL = function() { 
     localStorage.getItem(storeTitle); 
     console.info("Locally got string of " + storeTitle + ": " + localStorage.getItem(storeTitle)); 
    }; 
}; 
+0

哦,我明白了......我不知道!謝謝隊友:) – 2015-02-07 00:56:45

+0

不錯的方法。沒有意識到這一點。 – Timmerz 2015-02-07 01:01:46

1

您可以使用JavaScript關閉。尤其要看this webpage的「使用模塊模式的閉鎖」部分的完整說明。這個想法是讓函數返回一個包含所有必需方法的文字。任何你想保密的函數或變量都只是函數的局部變量。

+0

這有幫助,但我不明白,我如何使它只與'本地(標題).getL()'工作?如果你能解釋一下,你將成爲主人:) – 2015-02-07 01:25:53