2011-06-23 35 views
1

我想定義一個像下面這樣的函數,並在Jquery中使用它$(document).ready;在JavaScript中定義一個函數,而不是綁定到窗口對象

function pad2(number) { 

    return (number < 10 ? '0' : '') + number 

} 

我不確定我是否在這裏做。我不想將該函數綁定到窗口對象。我應該遵循什麼樣的方式來做下面的事情;

$(function(){ 

     alert(pad2(eval("10"))); 

    }); 

    function pad2(number) { 

     return (number < 10 ? '0' : '') + number 

    } 

回答

2

我相信這應該工作...您可以使用self executing functions來控制對象/函數範圍。

(function() { 
    function pad2(number) { 

     return (number < 10 ? '0' : '') + number 

    } 

    $(function(){ 

     alert(pad2(eval("10"))); 

    }); 
})(); 
0

不知道爲什麼你需要eval,但是,是的,你的方式的確會創建一個全球性的,即綁定到該窗口對象。嘗試:

$(function(){ 

    function pad2(number) { 
     return (number < 10 ? '0' : '') + number 
    } 
    alert(pad2("10")); 

}); 
0

您可以進行功能的其他對象的成員,像這樣:

var MyObj = {}; 

MyObj.pad2 = function pad2(number) { 
    return (number < 10 ? '0' : '') + number; 
} 

$(function(){ 
    alert(MyObj.pad2(10)); 
}); 
+0

這是一個我試圖記住。 – tugberk

+0

-1沒有解決問題;仍然暴露了全球範圍 –

+0

OP海報沒有說他們試圖避免綁定任何東西到全球範圍,只是功能,這完成。 – FishBasketGordo

相關問題