JavaScript面向对象





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


赋值
浅拷贝

深拷贝

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

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





在原型链上 一直往上找,内层(对象自身的),次外层,最外层,
优先展示内层的。
尽量少使用__proto__???


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


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

![]()

jq 也是面向对象的框架。
构造函数一改,对应用到构造函数的就会对应更改。源码如下:





jq 源码中应用:



in 不区分是自身属性 或 原型链上的属性。
jq 源码也有应用:


拷贝继承👇



类式继承👇


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

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

面向对象实现拖拽👇

继承拖拽👇

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

法二:配置对象的方法
以上代码,若限制只能在X轴进行拖拽,进行扩展如下👇。




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

综上,类似于组件开发。
组件开发中要善于利用面向对象的思想,对象之间的引用,原型链,继承与多态。
两篇文章:面向对象和原型链
https://www.liaoxuefeng.com/wiki/1022910821149312/1023022043494624
https://juejin.im/post/5d713de26fb9a06ad3474c15

浙公网安备 33010602011771号