失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > js面向对象小结(工厂模式 构造函数 原型方法 继承)

js面向对象小结(工厂模式 构造函数 原型方法 继承)

时间:2018-07-17 01:00:43

相关推荐

js面向对象小结(工厂模式 构造函数 原型方法 继承)

本文转至:TJYoung

最近过了一遍尼古拉斯泽卡斯的高级程序设计第三版(红皮书)第六章:面向对象程序设计,现在把总结出来的东西和大家分享一下。

主要内容如下:

1.工厂模式

2.构造函数模式

3.原型模式

4.继承

一、工厂模式

工厂模式中的函数中会创建一个对象,最后return这个对象,通过每次调用时传入的参数不同来解决创建多个相似对象的问题。

二、构造函数模式

构造函数本身也是函数,只不过是一个创建对象的函数

要创建person新实例,必须使用new操作符,调用构造函数会经历以下四步:

1.创建一个新对象

2.将构造函数的作用域给了新对象(this指向新对象)

3.为新对象添加属性

4.返回新对象

创建自己定义的构造函数意味着将来可以将它的实例标识为一种特定的类型,而工厂模式则都是object,无法区别。

构造函数和其他函数的唯一区别是调用方式不同,而任何函数只要用new操作符调用,那他就可以作为构造函数。

三、原型模式

每个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,这个对象的用途是包含可以由特定类型的实例共享的属性和方法。

使用原型对象的好处是可以让所有对象实例共享他所包含的属性和方法。不必在构造函数中定义对象实例的信息,而是可以将这些信息直接添加到原型对象中。

四、组合使用构造函数和原型模式

构造函数模式用于定义实例属性,而原型模式定义方法和共享的属性。这种混合模式还支持向构造函数传递参数。

五、原型链继承

原型链继承的主要思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。

警告:通过原型链继承是,不能使用对象字面量创建原型方法,这样会重写原型链!

六、借用构造函数继承

其实就是用call和apply实现继承

七、组合继承

将原型链和借用构造函数的技术组合起来一起用,好处是既能实现函数的复用,又能保证每个实例有自己的属性。

最后还有寄生式继承和寄生组合式继承,自己工作中也没有用过,这里就不赘述了。

少壮不努力,长大像毛利~

如果觉得《js面向对象小结(工厂模式 构造函数 原型方法 继承)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。