本文从 MDN 网站获取的知识,再这里仅仅是为所学做出阶段性总结。
js是一种使用 构造函数 定义对象和他们的特征。构造函数提供了创建所需的对象的有效方法,将数据的对象和特征函数按照需求联结成相应的对象。
js的面向对象的本质和其他的oop语言是不同的,但是他通过这种特殊的手段让程序在面向对象的前提下最大简化了面向对象程序的编写难度
直接定义对象:
js中定义对象的方式非常简单,可以直接生命,具体的结构类似与json格式:
let person = {
name: 'tommy',
age: 12,
greeting: function() {
console.log(this.name + this.age);
}
};
通过构造函数构造对象
通过构造函数完成对象的创建能让js在定义的层面更接近于java等面向对象的语言:定义构造函数并使用new关键字对其进行声明即可完成对象的创建。
function Person(name) {
this.name = name;
this.greeting = function() {
console.log(this.name);
}
}
通常情况下声明构造方法的时候首字母大写以便于和普通的函数区分开,声明形参以便于实例化特定的对象。
使用构造函数创建对象的方法:
let person_1 = new Person('Tommy');
使用构造函数新创建的对象:person_1
person_1.name;
person_1.greeting();
使用Object构造函数:
使用Object构造函数创建对象,他会创建一个新的空的对象:
let person_1 = new Object(); // {}
创建一个空的对象之后,就可以按照点访问或者括号访问的形式为空对象设置特定的属性或者方法:
person_1.name = 'Tommy';
person_1['age'] = 12;
person_1.greeting() = function() {
console.log(this.name);
};
或者在使用Object进行创建空的对象的时候为Object构造函数传入对象文本参数:
let person_1 = new Object({
name: 'Chirs',
age: 12,
greeting: function() {
console.log(this.name);
}
})
基于现有的对象创建新的对象:
使用Object的方法:Object.create(obj)
就能实现创建对象。
let person_2 = Object.create(person_1);
接下来就能在person_2 中访问所有的在 person_1 中的属性和方法了。