3

JS のすべての関数コンストラクターにはprototype.constructorプロパティがあります。そして、関数の定義を保存します:

function Rabbit(value) {
    this.jumps: value;
}
alert(Rabbit.prototype.constructor);  // alerts exactly the definition of the Rabbit function

ここで、関数コンストラクターではなくthis、本体に何もない単純な関数をチェックします。

function bar(val) {
    alert(val);
}
alert(bar.prototype.constructor);   // behavior is absolutely the same: it alerts the definition of bar

ここで、組み込みArray()関数を確認します。

alert(Array.prototype.constructor);  // in Chrome it alerts "function Array() { [native code] }"

そして今、組み込みオブジェクトの組み込み関数を確認したいと思います:

// The error is thrown in console: TypeError: Cannot read property 'constructor' of undefined 

alert(Array.prototype.sort.prototype.constructor);

sortありませんprototype。それはどこにある?そして、そのコンストラクターはどこにありますか?

4

1 に答える 1

1

メソッドを自分で追加すると、期待どおりの結果が返されます。

    Array.prototype.remove= function(){
        var what, a= arguments, L= a.length, ax;
        while(L && this.length){
            what= a[--L];
            while((ax= this.indexOf(what))!= -1) this.splice(ax, 1);
        }
        return this;
    }


alert(Array.prototype.remove.prototype.constructor);

列挙不可能なメソッドはコードを公開しません

于 2012-09-19T18:28:45.630 に答える