2

オブジェクトがありますc
機能がありますc.log(message)

それらを使用するためにいくつかの変数を追加することは可能c.log.debug = trueですか?

4

3 に答える 3

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();
于 2013-02-09T13:11:17.167 に答える
2

少し変更すると、次のようになります。

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

o.f.prop1 = 2;

o.f(); // f 2
o.f.prop1; // 2
于 2013-02-09T13:09:41.187 に答える
0

このようには機能しません。代わりに、「デバッグ」フラグをパラメーターとして関数に追加できます。

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

}
于 2013-02-09T13:05:07.633 に答える