この記事では、JavaScript コンストラクターについて詳しく説明します。必要な方は参考にしていただければ幸いです。
今日は JavaScript コンストラクターについて話し合う予定です。予定通りお越しいただきありがとうございます。
昨日コンストラクター関数コンストラクターについて話し合って結論が出ました。
constructor はプロトタイプ オブジェクトの属性で、デフォルトでこのプロトタイプのコンストラクターを指します。
この結論は、私たちの場合に非常に役立つと思われます。毎日の作業では役に立たないので、コンストラクターは本当に役に立たないのでしょうか?
JS の関数は、コンストラクターにすることも、通常の関数として呼び出すこともできます。 new を使用してオブジェクトを作成する場合、対応する関数がコンストラクターとして呼び出されます。オブジェクトを介した場合、それは通常の機能です。
私たちの日常業務では、オブジェクトを作成する必要があることがよくありますが、主にオブジェクトの直接量を使用して直接作成します。たとえば、コードは次のとおりです。
var person = { name:'postbird', address:'earth', sayHello:function(){console.log('Hello,I am ' + this.name);} };
単一のオブジェクトの場合、オブジェクトのプロパティとメソッドは基本的に変更されませんが、オブジェクトに多数のインスタンスがある場合、または継承やコンストラクター パラメーターの受け渡しが含まれる場合は、コードのコメントに注意してください。 # #
//创建了一个构造函数 function Person(name,address){ this.name = name; this.address = address; } //为构造函数的原型对象添加一个方法sayHello Person.prototype.sayHello = function(){ console.log('Hi I am ' + this.name); } //通过构造函数Person实例化一个p1,并传参 var p1 = new Person('postbird','earth'); //通过构造函数Person实例化一个p2,并传参 var p2 = new Person('ptbird','month'); console.log(p1);//{name: "postbird", address: "earth"} console.log(p2);//{name: "ptbird", address: "month"} // p1和p2 继承了Person的sayHello方法 p1.sayHello()//Hi I am ptbird p2.sayHello()//Hi I am postbird
function Person(area){ this.type = 'person'; this.area = area; } Person.prototype.sayArea = function(){ console.log(this.area); } var Father = function(age){ this.age = age; } Father.prototype = new Person('Beijin'); console.log(Person.prototype.constructor===Person) //true console.log(Father.prototype.constructor===Person); //true Father.prototype.constructor = Father;//修正 console.log(Father.prototype.constructor===Father); //true var one = new father(25); console.log(one.constructor===Father) // true
Father.prototype.constructor = Father;//修正
constructor がプロトタイプ オブジェクトの属性であるというわけではありません。デフォルトでこのプロトタイプのコンストラクターを指します。 ? このコード行をコメントアウトしましょう。
function Person(area){ this.type = 'person'; this.area = area; } Person.prototype.sayArea = function(){ console.log(this.area); } var Father = function(age){ this.age = age; } Father.prototype = new Person('Beijin'); console.log(Person.prototype.constructor===Person) //true console.log(Father.prototype.constructor===Person); //true //Father.prototype.constructor = Father;//修正 console.log(Father.prototype.constructor===Father); //false var one = new Father(25); console.log(one.constructor===Person) // true
Father.prototype = new Person('Beijin');
console.log((new Person('Beijin')).__proto__ === Person.prototype) //true
以上がJavaScript コンストラクターの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。