一、面向对象语言的基本特征:
抽象、封装、继承、多态
封装:将抽象的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的操作(成员方法),才能对数据进行操作
继承:由一个或多个类得来类的类的属性和方法的能力,一个类可以继承(extends)父类中的(public/protect)属性和(public/protect)方法,继承可以解决代码复用问题
多态:编写能以多种方法运行的函数或方法的能力
JS对象类型:本地对象、宿主对象(浏览器对象)、内置对象
本地对象:独立于宿主环境的ECMAScript实现提供的对象,简单来说本地对象就是EMCA-262定义的类(引用类)。它们包括Array Boolean Date Function Number String Object RegExp Math Global 以及各种错误对象Error等等
宿主对象:执行的js脚本的环境所提供的对象,其浏览器提供的对象。所以被本地对象都是宿主对象,所有BOM(window、Navigator、Screen、History、Location)和DOM对象都是宿主对象window 、screen、location、history、navigator、timing、popupAlert、cookie
内置对象:独立于宿主环境的所有对象,开发者不必明确实例化内置对象,它已经被实例化了 Math Global 也属于本地对象
JS浏览器对象:
window:表示一个浏览器窗口或一个框架,在客户端javascript中,widow对象是一个全局变量,所以的表达式都在当前的环境中计算。
window对象的属性和self属性引用的都是它自己。当你想起明确地引用当前窗口,而不仅仅是隐式地引用它时,可以使用这两个属性之外,parent属性、top属性以及frame[]数组都引用与当前window对象相关的其他window对象。
Navigator:对象包含有关浏览器的信息
Screen:对象包含客户端显示屏幕的信息
History:对象包含用户访问过的URL
History对象包含length属性,返回浏览器再历史列表中的url数量
History方法包含
back()加载history列表中的前一个url;调用该方法的效率等价于点击后退按钮会调用history.go(-1);
forward()加载history列表中的下一个url;调用该方法效果等价于点击前进按钮或调用history.go(1);
go(unmber或url)加载history列表中的某个具体的页面
Location:对象包含关于当前URL的信息
Location对象包含的属性
hash设置会返回从#号开始的URL(锚)
host设置或返回主机名和当前url的端口号
hostname设置或返回当前url的主机名
href设置或返回完整的url
pathname设置或返回当前url的部分路径
port设置或返回当前url的端口号
protocol设置或返回url的协议
search设置或返回从?开始的url(即查询部分)
Location对象的方法
assign(url)加载新文档
reload()重新加载文档,该方法没有规定参数,或者参数是false,它就用http头if-Modified-Since来检测服务器上文档是否已改变。如果文档已改变,reload会再次下载该文档。如果该文档没有改变,该方法将从缓存中装载文档
replace()用新的文档替换当前文档