位置: 编程技术 - 正文

每天一篇javascript学习小结(面向对象编程)(每天一篇小练笔30字)

编辑:rootadmin

推荐整理分享每天一篇javascript学习小结(面向对象编程)(每天一篇小练笔30字),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:每天一篇小练笔30字,每天一篇日记100字,每天一篇经济学人,每天一篇日记100字,每天一篇小短文,每天一篇日记,每天一篇小练笔主题,每天一篇小练笔主题,内容如对您有帮助,希望把文章链接给更多的朋友!

1、面向对象的工厂方法

工厂模型的方法的缺点是会产生大量重复代码!

2、构造函数模式创建对象

使用new关键字创建对象会经历以下四个过程

1、创建一个新对象 2、将构造函数的作用域赋给一个新对象(因此this就指向了这个新对象) 3、执行构造函数的方法(为这个新对象赋值) 4、返回新对象

3、将构造函数当函数用

构造函数当做函数使用就和普通的函数没有任何不同,它属于window对象下面添加的方法而已。由于构造函数创建的对象实际上是创建一个新对象,因此在本质上两者还是不一样的,还是分离的,他们的方法还是不一样的!

4、将共有的方法方法全局解决不一致的问题

虽然上面的方法解决了一致的问题,但是定义的全局的方法本身属于window,那么局部和全局就没有分开!所以这个方法使用的并不多见!也不建议使用。

5、原型模式

我们创建的任何的一个函数都有一个原型对象,这个属性是一个指针,它指向一个对象,而这个对象的作用是可以有特定的类型的所有的实例共享的方法!

理解原型

无论什么时候只要是创建了一个函数,就会创建一个原型属性,这个属性指向函数的原型对象。在默认的情况下,原型对象都会包含一个constructor(构造函数属性),这个属性包含一个指向prototype属性所在函数的指针!

属性读取的顺序

每当代码读取某个对象的属性时候,都会执行一次搜索,目标是具有给定名字的属性,搜索从对象的实例本身开始查找,如有则返回,没有则继续搜索该对象的原型链,直至搜索到原型链的最外层!

如果删除了这个元素的实例属性

6、hasOwnProperty方法

这个方法可以检测一个属性是否存在于实例中,还是存在于原型中!hasOwnProperty是从Object继承来的,只要给定属性存在于对象实例中,才会返回true.

7、Object.keys() 可枚举属性方法

每天一篇javascript学习小结(面向对象编程)(每天一篇小练笔30字)

这个方法接收一个对象作为参数,返回一个包含所有可枚举属性的字符串数组

此方法高版本浏览器才支持

8、简单的原型写法

重写了原型就等于将默认的原型方法覆盖,那么同样的构造方法也会被重写,重写的构造方法指向了Object对象!而不是原来的对象Person

如果还是想指向之前的构造方法,可以显示的指定

9、原型方法的动态添加

、原生对象的原型方法

、组合使用构造函数和原型模式创建对象

、动态原型模式

、寄生构造函数模式

上诉方法有一点说明下,由于它是依赖外层对象来创建一个新对象,因此不能依赖 instanceof方法来确定属性和方法的来源!它实际上和构造函数的没有关系!

、稳妥构造函数模式

此方法不依赖任何new this 关键符!如果要访问对象的方法和属性,只能通过对象已经定义好的方法来获取!

、继承javascript实现继承是通过原型链来实现的

上面的例子说明,重写的原型会覆盖之前继承的原型,最后返回的往往不是预期的效果

下面的例子也说明重写原型带来的风险

原型共享导致两个不同的对象调用的同一个数据、借用构造函数来实现继承

传递参数

、组合继承方式

、原型继承

、寄生组合式继承

本文链接地址:https://www.jiuchutong.com/biancheng/385453.html 转载请保留说明!

上一篇:js鼠标点击图片切换效果实现代码(js鼠标点击图片就消失)

下一篇:跟我学习javascript的最新标准ES6(java script)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络