は、私はいくつかの傍受ロジックでそれをラップしようとしたので、私はちょうど_fun
に.length
データを失っているのは、私は次のコードラッピング機能とfunction.length
/*...*/
var _fun = fun;
fun = function() {
/*...*/
_fun.apply(this, arguments);
}
を持って考えてみましょう。
次は
var f = function(a,b) { };
console.log(f.length); // 2
f.length = 4;
console.log(f.length); // 2
fun
内部のロジックがどのように私は傍受して上書きすることができ、正確であると.length
が必要であることを考えると
Object.defineProperty(fun, "length", {
value: /*...*/,
writable: false,
configurable: false,
enumerable: false
}
を次のように.length
が定義されていることをannotated ES5.1 specification states動作しません。この機能はデータを破壊することなく.length
ですか?
私はeval
と同じ数の引数を持つ新しい文字列を構築するためにはドーフFunction.prototype.toString
を使用する必要があると感じています。私はこれを避けたい。
本当に 'length'を正しく設定する必要がありますか? https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Function/bindを見てみると、多くのライブラリもこの動作をシミュレートします。 – Prusse
@Prusseバインドはどのように私の問題を解決するつもりですか? – Raynos
あなたの目的を明確に理解することはできません。申し訳ありません。 – Prusse