javascriptシリーズを深く理解します.
1440 ワード
prototypeオブジェクトには配置関数があります.デフォルトではプロトタイプオブジェクトの配置関数を指します.
constructorの役割は、具体的なオブジェクトの構造関数が誰かを知ることができます.
constructor属性はプロトタイプのオブジェクトと構造関数との関連関係を表しています.プロトタイプのオブジェクトを修正すると、construtor属性を同時に修正して、参照の間違いを防止します.
function Person(name,age){
this.name=name;
this.age=age;
}
var xiaoming=new Person(" ",10);
console.log(Person.prototype.constructor==Person);
constructor属性はprototype上に定義されているので、コンストラクタのすべてのインスタンスオブジェクトに使用されます.console.log(xiaoming.constructor===Person);
xiaoming自体はconstructor属性ではなく、その原型チェーン上のconstructorを継承しています.constructorの役割は、具体的なオブジェクトの構造関数が誰かを知ることができます.
constructor属性はプロトタイプのオブジェクトと構造関数との関連関係を表しています.プロトタイプのオブジェクトを修正すると、construtor属性を同時に修正して、参照の間違いを防止します.
function Person(name,age){
this.name=name;
this.age=age;
}
var xiaoming=new Person(" ",10);
Person.prototype={
say:function(){
console.log(" ");
}
}
console.log(Person.prototype.constructor==Person);// false
Person.prototypeは普通の対象を指しているので、普通の対象のprototype.com nstructorはObjectを指しています.console.log(Person.prototype.constructor==Object);// true
したがって、原型のオブジェクトを修正するときは、constructor属性の指差を同時に修正するのが一般的です.//
C.prototype = {
method1: function (...) { ... },
// ...
};
//
C.prototype = {
constructor: C,
method1: function (...) { ... },
// ...
};
//
C.prototype.method1 = function (...) { ... };