2013-06-05 176 views
0

有没有办法做到:JavaScript对象返回静态方法和自己的方法

foo()  // return string "foo" 
foo.bar() // return string "bar" 

我试着用功能和对象进行实验。但没有发生。

+0

你想要的东西是这样的: - function foo(){return“foo”; } foo.bar = function(){return“bar”; } – pvnarula

+0

你想让foo()返回“foo”,那就是'function foo(){return“foo”}'或者你是否想要返回一个被调用的函数的名字,它会是'console.log(foo .name);'这将是毫无意义的,因为你已经输入了名字...... – luk2302

回答

2
function foo() { 
    return "foo"; 
} 
foo.bar = function() { 
    return "bar"; 
}; 

或者,如果你喜欢:

var foo = function() { 
    return "foo"; 
}; 
foo.bar = function() { 
    return "bar"; 
} 

JS函数是一个类型的对象,所以你可以分配属性/方法将它们同任何其他对象。

0

你可以调用一个函数或者一个名为foo的类,但是根据我的理解你不能同时拥有这两个类。如我错了请纠正我。为什么要用同样的方式想要一个类和一个函数呢? 我假定这就是你想要的东西,因为在您的文章

一点信息要定义一个函数使用该

function foo() { 
    console.log("foo"); 
} 

而且在你的榜样称呼它。

要定义一个类,像这样做(here是一些其他的方式来做到这一点)。

var foo = { 
    bar: function() { 
     console.log("bar"); 
    } 
} 

再说一遍,就像你在你的例子中所做的那样。

+0

_“如果我错了,请纠正我。” - - 嗯,呃......你错了。尝试从我的答案代码。顺便说一下,Javascript本身没有类,但是如果你用'new'调用JS函数,它的行为有点像其他语言中的类。 “class”这个词通常意味着你可以创建实例,但你的'var foo = {...}'只是一个带有方法的单例对象... – nnnnnn