[Js]面向对象基础

时间:2021-08-29 04:05:00

一、什么是对象

对象是一个整体,对对外提供一些操作

二、什么是面向对象

使用对象时,只关注对象提供的功能,不关注其内部细节,比如Jquery

三、Js中面向对象的特点

1.抽象:抓住核心问题

2.封装:不考虑内部实现,只考虑功能使用

3.继承:①多重继承(多个父级)②多态(父类和子类具有相同的操作,但这些操作之间又不是那么一样)

四、this

是什么?当前的方法属于谁

唯一一种会失效的情况?调用函数前面有new

this啥时候会出问题: 1.定时器(被定时器调的函数,this是window) 2.事件

解决方法:再套一层,调用_this(通过闭包传递this)

五、prototype

原型prototype作用:给一类元素(系统的一些对象,如数组、字符串)添加方法,扩展系统函数的功能

六、在js里,类就是构造函数

七、引用

所谓引用,即指向同一块内存区域的地址

var arr1=[1,2,3];

var arr2=arr1;

arr2.push(4);

alert(arr1);

alert(arr2);

输出结果都是1,2,3,4

arr1和arr2就像两把钥匙,[1,2,3]就像个房间,用钥匙2打开房间加个4进去,再用钥匙1打开进去,空间还是1,2,3,4

如果想不一样怎么办

var arr1=[1,2,3];

var arr2=[];

for( var i in arr1){

arr2[i]=arr1[i];

}

....

八、系统对象

1.本地对象(非静态对象)

需要new出来才能用的

常用对象:Object、Function、Array、String、Boolean、Number、Date、RegExp、Error

2.内置对象(静态对象)

Global(全局的,事实上只存在书本上,实际用不到)、Math

3.宿主对象(由浏览器提供的对象)

DOM、BOM