点击上面的蓝字,关注“小丁做代码工作”,每天学习知识,可以理解一个问题!

今天,我将开门见山地总结一下JavaScript这种语言中如何创建对象的优点和问题。

一、创建一个对象

如下代码:

输出:小郑搞码事

利用内置的Object对象,当然,也可以用字面量的方式。很好理解

二、工厂模式创建

如下代码:

输出:小郑

输出:小郑搞码事

用工厂模式来生产对象。总比每需要一个对象都要去创建要好(关键是对象的每个属性都要创建)。工厂模式解决了创建多个相似对象的问题,但却没有解决对象识别的问题(即怎样知道一个对象的类型)。这个时候就出现了下面的构造函数模式。

三、构造函数模式创建

如下代码:

输出:小郑

输出:小郑搞码事

然而,构造函数模式虽然好用,但也有缺点,就是使用构造函数时,每个方法都要在每个实例上重新创建一遍。所以又现了下面这种原型模式。

四、原型模式创建

如下代码:

原型模式的问题是:它省略了为构造函数传递初始化参数这一环节。结果所有实例在默认情况下都取得了相同的属性值。所以出现了下面这种组合模式。

五、组合模式创建(构造函数+原型)

如下代码:

输出:小郑搞码事

组合模式汇集了构造函数模式和原型模式的优点,也是现在经常使用的一种创建对象的形式。

总结一下:

JavaScript要想学会面向对象编程,首先要学会如何去创建一个对象,然后就理解继承的方式。

相关推荐