返回静态方法和自身作为方法的JavaScript对象

返回静态方法和自身作为方法的JavaScript对象,javascript,Javascript,有没有办法做到: foo() // return string "foo" foo.bar() // return string "bar" ? 我试着用函数和对象做实验。但什么也没发生 function foo() { return "foo"; } foo.bar = function() { return "bar"; }; 或者,如果您愿意: var foo = function() { return "foo"; }; foo.bar = funct

有没有办法做到:

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

我试着用函数和对象做实验。但什么也没发生

function foo() {
   return "foo";
}
foo.bar = function() {
   return "bar";
};
或者,如果您愿意:

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

JS函数是一种对象类型,因此您可以将属性/方法分配给它们,就像分配给任何其他对象一样。

您可以调用名为
foo
的函数或类,但据我所知,不能同时调用这两个函数或类。如果我错了,请纠正我。为什么你想要一个类和一个函数用同样的方式呢?我假设这就是你想要的,因为你的帖子里几乎没有什么信息

要定义函数,请使用以下命令

function foo() {
    console.log("foo");
}
就像你的例子中那样

要定义一个类,请这样做(还有其他一些方法)


再次,像您在示例中那样调用它。

您希望这样:-function foo(){return“foo”}foo.bar=function(){return“bar”}您希望foo()返回“foo”,即
function foo(){return“foo”}
还是希望返回被调用函数的名称,即
console.log(foo.name)这将是毫无意义的,因为您已经输入了名称…“如果我错了,请纠正我。”-好的,嗯…您错了。试试我答案中的代码。顺便说一下,Javascript本身没有类,但是如果您使用
new
调用JS函数,它的行为有点像其他一些语言中的类。单词“class”通常意味着可以创建实例的东西,但是您的
var foo={…}
只是一个带有方法的单例对象。。。
var foo = {
    bar: function() {
        console.log("bar");
    }
}