在JavaScript中充当对象

时间:2013-02-09 13:01:33

标签: javascript

有一个对象c 它有一个函数c.log(message)

是否可以添加一些变量来使用它们,如c.log.debug = true

3 个答案:

答案 0 :(得分:4)

Javascript是一种完整的面向对象语言。这意味着几乎 所有都是一个对象 - 甚至是函数:

var f = function(){};
alert(f instanceof Function);
// but this statement is also true
alert(f instanceof Object);

// so you could add/remove propreties on a function as on any other object : 
f.foo = 'bar';

// and you still can call f, because f is still a function
f();

答案 1 :(得分:2)

稍作修改就可以这样:

var o = {f: function() { console.log('f', this.f.prop1) }};

o.f.prop1 = 2;

o.f(); // f 2
o.f.prop1; // 2

答案 2 :(得分:0)

它不会像这样工作。您可以将'debug'标志作为参数添加到您的函数中,例如

c.log = function(message, debug) {
  if debug {
    // do debug stuff
  }
  else {
   // do other stuff
  }

}