共通オブジェクトや関数オブジェクト
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)コンストラクタ(人)間。