笔记6

67 阅读2分钟

JavaScript面向对象相关内容知识点总结。 

 在JavaScript中,对象可以被理解为是一系列属性的集合,而一个属性由属性名和属性值(即键值对)两部分所构成,并且属性的值可以是一个函数(此时该属性就是对象的方法)。

ES6之前的 JavaScript 可以认为是一种基于对象(object-based)的语言,几乎可以把JavaScript中遇到的所有事物都当做是对象。它和其他传统面向对象语言是有点区别的,并没有类这个概念,语法中也没有 class(类)。 

注意:此处是针对ES6之前的版本,而从ES6开始就引入了 class。关于 ES6 的类,在后续课程中再做详细介绍

类是什么? 对象是什么?

类:对一系列具有相同特征和行为的事物的抽象的集合 

对象:类的一个具体的实例  

Object 构造函数

  JavaScript 中,除了以上的 { } 语法外,也可以通过 Object 构造函数和new关键字来构造JavaScript对象

自定义构造函数

 JavaScript 使用一种被称为构造函数的特殊函数来定义对象和它们的特征,构造函数的首字母一般采取大写方式

对象继承

继承

继承是面向对象的一个重要特征,在面向对象编程中,当想要依据另一个类来定义一个类,直接获得另一个类的属性和方法时,既可以采用继承的方式来实现。

原型继承(Prototypal inheritance) 这个特性能够帮助我们实现这一需求  

原型

在JavaScript中,每个对象都拥有一个原型对象,对象可以从原型中继承方法和属性。

原型对象也可能拥有原型,并从中继承方法和属性,一层一层、以此类推,这种关系常被称为 原型链 ,它解释了为何一个对象会拥有定义在其他对象中的属性和方法。  

this对象中的this转换

call( ) 与 apply( )方法

两个方法都可以使用一个指定的 this 值,并单独给出的一个或多个参数来调用一个函数。

call( )方法的语法和作用与 apply( ) 方法类似,两者的区别,就是 call() 方法接受的是一个参数列表,而 apply() 方法接受的是一个包含多个参数的数组。