せOBJ = {}
FN =せ関数(){
this.content = 'zhangsan'が
} FN2せ = 新しい FN()
FN2オブジェクトがどのようなもの通常のオブジェクトを見て、行うには新しいことを学ぶために、アウトfnをインスタンス化されます。
普通のオブジェクト:
オブジェクトのFN2の例:
1:一般的なオブジェクトポイントとfn.prototypeポインティング__proto__ FN2のFunction.prototypeを__proto__ので、新しいプロセスは、プロトタイプのFNを指すようにFN2の__proto__の点を変更します。
2:プロパティは、FN、FN2にこのポイントのFNの説明の内容なので、この点を変更するプロセスの新しい経験を持ち、コンテンツプロパティを追加するFN1は、fnメソッドを呼び出しFN2。fn.call(FN1)。
完全なプロセス:
FnはLETの= 関数(){ この .content = 'zhangsan' } LET Fn2が = 新しい新しいFN() 手順: LET Fn2が = {} // 空のオブジェクト作成 Fn2が.__ = fn.prototype proto__ // __proto_のFN2を変更します_ポインティング fn.call(FN2)が // FNのこのポイントを変更します
独自の新を実装します。
せmyNew = 関数(SUP){ せOBJ = {} OBJ .__ proto__ = sup.prototype sup.call(OBJ) 戻りOBJ } FNはせ = 関数(){ この .content = 'zhangsan' } FN2せ = myNew(FN ) にconsole.log(FN2)