JS dom 面向对象的理解

本文详细介绍了JavaScript中DOM(文档对象模型)和BOM(浏览器对象模型)的基础概念及应用,包括定时器、页面跳转、元素创建与操作、面向对象编程等内容。

js DOM

1.定时器
setTimeout(一段时间后执行一次)对应clearTimeout
setInterval(每隔多长时间执行,多次)对应clearInterval
一般是 var timer;
timer=setTimeout(函数名,秒数);【一般这种,都有清除定时器操作】
也可直接setTimeout(函数名,秒数);

2.BOM
location.href=”**.html/域名”;(跳转到某个指定的页面,域名)
location.reload();(刷新当前页面)
history.go(数字),负数代表后退几次,正数代表前进几次,和浏览器的前进后退一个道理。
history.back(数字),后退几个。
history.forword(数字),前进几个。
document.bgColor=”颜色”;设置页面背景颜色。
document.title;得到当前html里的title名字。

3.dom创建元素
document.getElemenById;通过id名获取对象,单独的一个;
document.getElemensByTagName;通过html元素获取对象,得到的是集合;
document.getElemensByName;通过name属性获取对象,得到的也是所有name相同的对象集合,感觉和tagname差不多。
一般是var 变量名=document.creatElement(元素名);
创建完成后,可以给创建的元素添加他的html属性。比如变量名.value等等。
最后要加到它的父级。也就是 父级元素.appendChild(变量名(子节点));
设置子节点的style:
子节点.className=”class名称”,设置好class名称的style属性后,直径拿来用。

4.dom元素的增加、删除、替换、clone
插入:父级.insertBefore(新的节点,已存在的节点(获取某个节点的所有集合,遍历它,再通过索引值确定要插入在第几个节点后面));
删除:父级.removeChild(要删除的节点);
替换:父级.replaceChild(新的节点,被替换的节点(也是要遍历));
克隆:要克隆的节点.cloneNo的(true(复制全部)/false(不包括内容))。

5.面向对象
直接创建对象:
var stu=new Object();
stu.name=”jack”;

(也可是函数,也就是方法)
stu.study=function(){
}

通过构造函数创建对象:
function Student(name,age,…){
this.name=name;

this.study=function(){
}
再调用:var stu=new Student(“jack”,20);
stu.study();

通过对象字面量创建对象:
var stu={
name:”jack”,(逗号分隔)
age:20,
}
和json的区别就是json的name,也必须加双引号。json可以添加复合属性。比如:
var stu={
“name”:{“firstname”:”jack”,
“secondname”:”make”
}
“age”:20
}

类和对象。如果把创建对象比作制作蛋糕,类就是制作蛋糕的模子,而对象就是蛋糕。类就是var stu=new Student中的Student,而对象就是var stu=new Student(“jack”,20)中的stu。而变量就相当于属性,只不过属性是属于这个对象的,而变量是自由的;而创建的方法就相当于函数,只不过这个方法是属于创建的这个对象,而函数是自由的它不属于谁。

js的基本数据类型(number,null,string,undefind,boolean),存放在栈里面。而复杂数据类型也就是引用数据类型(object,arry)的引用存在栈中,数据存在堆中,它的引用指着他的数据。实例就是:
var a=3,b=a,b=5,这时a还是3,但是若是var a=[1,12,33],b=a,b[2]=55,这时a=[1,12,55]。就是因为引用数据类型的引用和数据不在同一个地方,获取数据通过指针。

6.原型
每一个构造函数都默认有一个prototype属性。这个构造函数通过prototype指向原型对象,而原型对象通过constructor属性指向构造函数。构造函数通过实例化,也就是调用函数时的对象,又指向原型对象。
当给原型对象添加属性或者方法时,它是公有的,每一个实例都能获取到这个原型对象属性或方法。而当
Student.prototype={
constructor:Student,
height:190,
weight:200,
run:function(){
console.log(“我在跑马拉松”);
}
它会覆盖原型对象。就相当于
Student.prototype=new Object{
height:190,
weight:200,
run:function(){
console.log(“我在跑马拉松”);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值