プロトタイプ及び遠位JS [プロトタイプチェーン

共通オブジェクトや関数オブジェクト

JSオブジェクトへのオブジェクトと通常のオブジェクト、オブジェクト機能と関数オブジェクトの機能は、JSを内蔵しています。

var o1 = {}; 
var o2 =new Object();
var o3 = new f1();  // 这个地还不大理解

function f1(){}; 
var f2 = function(){};
var f3 = new Function('str','console.log(str)');

console.log(typeof Object); //function 
console.log(typeof Function); //function  

console.log(typeof f1); //function 
console.log(typeof f2); //function 
console.log(typeof f3); //function   

console.log(typeof o1); //object 
console.log(typeof o2); //object 
console.log(typeof o3); //object

新しい機能によって作成されたオブジェクトは、()オブジェクトの関数であり、他は通常のオブジェクトです。作成するには、F1、F2、最終的な分析では、新たな機能を介して行われ()の方法。関数オブジェクトが作成された)(新機能でもあります

2つのコンストラクタ

コンストラクタを指して、インスタンスコンストラクタ(コンストラクタ)を属性。

function Person(name, age, job) {
 this.name = name;
 this.age = age;
 this.job = job;
 this.sayName = function() { alert(this.name) } 
}
var person1 = new Person('Zaxlct', 28, 'Software Engineer');
var person2 = new Person('Mick', 23, 'Doctor');
console.log(person1.constructor == Person); //true
console.log(person2.constructor == Person); //true

PERSON1、PERSON2なしコンストラクタは、親クラスで探しています。
PERSON1とPERSON2は、Personインスタンスのコンストラクタです。

Triarchオブジェクト

各オブジェクトには、_たプロト _属性
のみ関数オブジェクトは、関数のプロトタイプオブジェクトを指すprototypeプロパティを持つ、オブジェクトのprototypeプロパティは、オブジェクトの既定のプロパティに相当します。

function Person() {}
Person.prototype.name = 'Zaxlct';
Person.prototype.age  = 28;
Person.prototype.job  = 'Software Engineer';
Person.prototype.sayName = function() {
  alert(this.name);
}
  
var person1 = new Person();
person1.sayName(); // 'Zaxlct'

var person2 = new Person();
person2.sayName(); // 'Zaxlct'

console.log(person1.sayName == person2.sayName); //true

プロトタイプオブジェクトは、デフォルトコンストラクタのプロパティを持っています

四 _proto_

あなたは(通常のオブジェクトまたは関数オブジェクトかどうか)のオブジェクトを作成するときにJS、組み込みのプロトタイプオブジェクトのコンストラクタを作成するためのポイントの__proto__名前付きプロパティがあります。
PERSON1 __proto__オブジェクトプロパティを持って、そのコンストラクタは、プロトタイプオブジェクトパーソンを作成することで、コンストラクタはそう、Person.prototypeです。

person1.__proto__ == Person.prototype
Person.prototype.constructor == Person;
person1.__proto__ == Person.prototype;
person1.constructor == Person;

しかし、本当に重要なポイントをクリアするためには、この接続はインスタンス内に存在するのではなく、インスタンス(PERSON1)コンストラクタ(人)プロトタイプオブジェクト(Person.prototype)の間に存在するということである(PERSON1)コンストラクタ(人)間。

ファイブコンストラクタ

おすすめ

転載: blog.csdn.net/cheidou123/article/details/93376969
おすすめ