2012-08-10 76 views
0

如何在js中声明非全局静态方法?Javascript:我如何声明非全局静态方法?

foo.bar = function() { 
    function testing{ 
    console.log("statckoverlow rocks!"); 
    } 
    function testing2{ 
    console.log("testing2 funtction"); 
    } 
} 

如何调用测试功能?我是JS的新手。

感谢您的帮助。

回答

3

你可能想的对象。

foo.bar = { 
    testing: function() { 
    console.log("statckoverlow rocks!"); 
    }, 
    testing2: function() { 
    console.log("testing2 funtction"); 
    } 
}; 

然后,例如,拨打foo.bar.testing()

1

你可以这样做:

foo.bar = (function() { 
    var testing = function() { 
    console.log("statckoverlow rocks!"); 
    }; 
    var testing2 = function() { 
    console.log("testing2 funtction"); 
    }; 
    return { 
    testing: testing, 
    testing2: testing2 
    }; 
}()); 

// call them 
foo.bar.testing(); 
foo.bar.testing2(); 
+0

为什么我们需要for.bar =(函数(){} .....());它似乎让事情变得复杂 – 2012-08-10 04:05:56

+0

** @ Kit Ho **这是一个自我执行的函数,它创建一个单例。如果你在JavaScript中使用“类”或原型,请检查我的答案我相信这就是你所说的静态方法。 – elclanrs 2012-08-10 04:09:00

1

您是不是要找:

var foo = { 
    bar: { 
     testing: function() 
     { 
      console.log("statckoverlow rocks!"); 
     }, 
     testing2: function() 
     { 
      console.log("testing2 funtction"); 
     } 
    } 
}; 


foo.bar.testing(); 
foo.bar.testing2(); 
0
// Constructor 
function Foo() { 
    var myvar = 'hey'; // private 
    this.property = myvar; 
    this.method = function() { ... }; 
} 
Foo.prototype = { 
    staticMethod: function() { 
    console.log(this.property); 
    } 
} 
var foo = new Foo(); 
foo.staticMethod(); //=> hey 
相关问题