0

有可能做这样的事情吗?

var foo;
foo.bar = function { };
foo.variable1 = "Hello World";
foo.variable2 = 5;

...并以某种方式做到这一点,以便我可以:

function example() {
    foo(); // <-- have this call foo.bar()
    foo.variable1 = "Goodbye World"; // <-- but still have this work 
    }
4

2 回答 2

3

是的。函数也只是对象。

var foo = function () { alert("Hi!") };
foo.variable1 = "Hello world";

console.log(foo.variable1);
foo();
于 2012-10-05T20:40:37.247 回答
0

比你想象的要容易。

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

foo.bar = function() {
  console.log('Hello World. '+ foo.variable1);
};

foo.variable1 = "Goodbye World";

foo(); // "Hello World. Goodbye World"
于 2012-10-05T20:44:51.703 回答