一、JS中的面向对象
创建对象的几种常用方式
1.使用Object或对象字面量创建对象
2.工厂模式创建对象
3.构造函数模式创建对象
4.原型模式创建对象
1.使用Object或对象字面量创建对象
js中最基本创建对象的方式
var student = new Object();student.name = "easy";student.age = "20";
一个student对象就创建完毕,拥有2个属性name
以及age
,分别赋值为"easy"
和20
。
对象字面量方式创建对象
ar sutdent = { name : "easy", age : 20};
2.工厂模式创建对象
js中没有类。可以使用一种函数将对象创建过程封装起来以便于重复调用,同时可以给出特定接口来初始化对象
function createStudent(name, age) { var obj = new Object(); obj.name = name; obj.age = age; return obj;}var student1 = createStudent("easy1", 20);var student2 = createStudent("easy2", 20);...var studentn = createStudent("easyn", 20);
对象的createFruit()函数:
function createFruit(name, color) { var obj = new Object(); obj.name = name; obj.color = color; return obj;}var v1 = createStudent("easy1", 20);var v2 = createFruit("apple", "green");
Document
3.构造函数模式创建对象
构造函数:
var obj = new Object();
创建原生数组Array类型对象时用过构造函数
var arr = new Array(10); //构造一个初始长度为10的数组对象
构造函数和普通函数的区别:
1.调用方法 : 使用new操作符调用,那么它就是构造函数;不使用new操作符调用,那么它就是普通函数。
2.构造函数名以大写字母开头,普通函数以小写字母开头
3.使用new操作符调用构造函数时,会经历(1)创建一个新对象;(2)将构造函数作用域赋给新对象(使this指向该新对象);(3)执行构造函数代码;(4)返回新对象;4个阶段。
Document
用instanceof操作符来检测以上对象类型就可以区分出Student以及Fruit了:
alert(v1 instanceof Student); //truealert(v2 instanceof Student); //falsealert(v1 instanceof Fruit); //falsealert(v2 instanceof Fruit); //truealert(v1 instanceof Object); //true 任何对象均继承自Objectalert(v2 instanceof Object); //true 任何对象均继承自Object
将对象方法移到构造函数外部:
function Student(name, age) { this.name = name; this.age = age; this.alertName = alertName;}function alertName() { alert(this.name);}var stu1 = new Student("easy1", 20);var stu2 = new Student("easy2", 20);
4.原型模创建对象
二、定时器
在js中的定时器分为两种: 1.setTimeOut( ) 2.setInterval( )
1.setTimeOuo()
只在指定时间后执行一次
/定时器 异步运行 function hello(){ alert("hello"); } //使用方法名字执行方法 var t1 = window.setTimeout(hello,1000); var t2 = window.setTimeout("hello()",3000);//使用字符串执行方法 window.clearTimeout(t1);//去掉定时器
2.setInterval()
在指定时间为周期循环执行
/实时刷新 时间单位为毫秒 setInterval('refreshQuery()',8000); /* 刷新查询 */ function refreshQuery(){ console.log('每8秒调一次') }
如果要求在每隔一个固定的时间间隔后就精确地执行某动作,那么最好使用setInterval.
每次函数的调用需要繁重的计算以及很长的处理时间,那么最好使用setTimeout
Document
三、BOM
BOM:Browser Object Model,浏览器对象模型。
BOM的结构图:
window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为window的子对象。
DOM是BOM的一部分。
window对象:
-
window对象是JavaScript中的顶级对象。
-
全局变量、自定义函数也是window对象的属性和方法。
-
window对象下的属性和方法调用时,可以省略window。
1.弹出系统对话框
alert(1)
是window.alert(1)
的简写,因为它是window的子方法。
2.打开窗口, 关闭窗口
打开窗口:
window.open(url,target)
url : 要打开的地址.
target : 新窗口的位置.可以是 : _blank , _self , _parent父框架.
3.location对象
window.location
可以简写成location。location相当于浏览器地址栏,可以将url解析成独立的片段。
a.location对象的属性
href : 跳转
hash : 返回url中后面的内容 , 包括#
host : 主机名 , 包括端口
hostname : 主机名
pathname : url 中的路径部分
protocol : 协议 一般是http、https
search : 查询字符串
例子; 点击盒子时 , 进行跳转
smyhvae
5秒后自动跳转到百度
b. location对象的方法
location.reload():重新加载
setTimeout(function(){ //3秒之后让网页整个刷新 window.location.reload(); },3000)
4.navigator对象
window.navigator 的一些属性可以获取客户端的一些信息。
-
userAgent:系统,浏览器)
-
platform:浏览器支持的系统,win/mac/linux
console.log(navigator.userAgent); console.log(navigator.platform);
5.history对象
1、后退:
-
history.back()
-
history.go(-1):0是刷新
2、前进:
-
history.forward()
-
history.go(1)
Title