関連する知識の原則プロトタイプ-new

せ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)

 

 

 

おすすめ

転載: www.cnblogs.com/bravefuture/p/11278205.html