在JavaScript中定义一个函数而不是将它绑定到window对象

时间:2011-06-23 15:02:53

标签: javascript jquery window

我想定义一个类似下面的函数,并在Jquery $(document).ready;

中使用它
function pad2(number) {

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

}

我不确定我是在这里做的。我不想将该函数绑定到window对象。我应该采用什么样的方式来做正确的事情;

    $(function(){

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

    });

    function pad2(number) {

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

    }

3 个答案:

答案 0 :(得分:2)

我相信这应该有用......您可以使用self executing functions来控制对象/功能范围。

(function() {
    function pad2(number) {

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

    }

    $(function(){

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

    });
})();

答案 1 :(得分:0)

不确定为什么需要eval,但是,您的方式确实会创建一个全局,即绑定到窗口对象。尝试:

$(function(){

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

});

答案 2 :(得分:0)

您可以将该函数作为另一个对象的成员,如下所示:

var MyObj = {};

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

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