0

ここで何が起こっているのか理解しようとしています:

if (!Object.create) {
Object.create = (function () {
    var F = function(){};

    return function (o) {
        if (arguments.length !== 1) {
            throw new Error('Object.create implementation only accepts one parameter.');
        }
        F.prototype = o;
        return new F();
    };
}());

}

F.prototype とはどういう意味ですか... 関数の戻り値はどのように機能しますか

4

3 に答える 3

0

初期 F は空の関数であり、新しい F() は空のオブジェクトを返します。つまり、{}

F.prototype = o

クラスとしてのFは、オブジェクトoのプロパティを取得します

たとえば、o={a:1} の場合、new F() は {a:1} を返します。

これは、F を次のように定義するのと同じです。

F = function(){
  this.a = 1;
}

しかし、あなたの例では、 create() 関数に渡されたオブジェクト o のクラスに基づいて新しいオブジェクトを作成できます

于 2013-07-22T21:44:36.487 に答える