JavaScript面向对象

 

 

 

 

 

 

 

 

⚠️:具备隐式返回操作,不用return也行。

 

 

 

 

赋值

 

浅拷贝

 

 

深拷贝

 

 

 

  

 

 共享,就解决了以上代码内存消耗的问题。 

 

 

 

 

__proto__: 内部属性,查找当前对象的原型对象。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

在原型链上 一直往上找,内层(对象自身的),次外层,最外层,

优先展示内层的。

尽量少使用__proto__???

 

 

 

 

 

 

 以上,数组身上的push方法就被覆盖掉了。

 

 

 

 

基本类型不是对象,但是也可以有其包装对象上的方法。

 

 

 

 

 

 

 

jq 也是面向对象的框架。

构造函数一改,对应用到构造函数的就会对应更改。源码如下:

 

 

 

 

 

 

 

 

 

 

 

 

 jq 源码中应用:

 

 

 

 

 

 

 

 

 in  不区分是自身属性 或 原型链上的属性。

jq 源码也有应用:

 

 

 

拷贝继承👇

 

 

 

 

 

 

 

 

类式继承👇

 

 

 

 

非构造函数继承(浅拷贝)👇

 

非构造函数继承(原型继承)👇

 

 

 

 

面向对象实现拖拽👇

  

 

 

 

 

继承拖拽👇

 

 

 

 

  

 

 以上代码是完全继承的,假如子类要修改一个方法,就是多态操作(先继承,后重写)

法一:重写继承的方法👇

   

 

 

 

法二:配置对象的方法

以上代码,若限制只能在X轴进行拖拽,进行扩展如下👇。

 

 

 

 

 

 

若div4, 限制只能在Y轴进行拖拽,但是并不限定范围。

 

 

 

综上,类似于组件开发。

          组件开发中要善于利用面向对象的思想,对象之间的引用,原型链,继承与多态。

 

 

两篇文章:面向对象和原型链

https://www.liaoxuefeng.com/wiki/1022910821149312/1023022043494624

https://juejin.im/post/5d713de26fb9a06ad3474c15

 

posted @ 2020-07-12 13:18  CatherLee  阅读(139)  评论(0编辑  收藏  举报