------------面向对象(高级)---------
面向对象(oo): 你只关系怎么用 不需要知道的内部原理.
2种人
1 使用面向对象
2 写面向对象 $
对象的组成:
属性 和 方法
属性 <==> 变量
方法 <==> 函数
-----this: 当前事件发的对象;当前的方法属于谁!
----------------严格模式-----------------------
“use strict” -----解决jsBug
1 定义变量必须带var
2 不允许在if for while 定义函数
3 干掉了8进制
4 干掉with
5 干掉callee caller
6 函数的参数不能重名
7 修正this
结论:以后写代码都带上严格模式!
严格模式书写格式:
1 必须写在作用域的最顶上
2 必须小写
3 单双引无所谓
4 必须是10个字符
范围: 1 作用域 ;2 script标签
------------------
原型: prototype
原型链:对象在访问属性的时候先找自己,自己没有找到找父级的原型,还没找到会找 Object!
Object没找到 返回一个undefined!
--------如何写面向对象:
1 属性写在构造函数内
2 方法写在原型身上
------------------事件委托-----------------
事件:
事件委托:
原理: 冒泡
事件源: srcElement (chrome/ie) target(高级浏览器)
//委托 给父级加事件
oUl.onclick = function(ev){
var oEvent = ev || event;
//事件源 srcElement chrome ie
// 高级浏览器 target;
//var oSrc = oEvent.srcElement;
//var oSrc = oEvent.target;
var oSrc = oEvent.srcElement || oEvent.target;
if(oSrc.tagName.toLowerCase() == "li"){
oSrc.style.background = "red";
}
};
---------------事件over--out-----bug-----
onmouseover/out_ bug
over: 判断来源
formElement chrome ie
relatedTarget 高级
out: 判断去向
toElement chrome ie
relatedTarget 高级
判断是否是我自身的元素: 容器.contains(来源/去向) ==> true false
onmouseenter/leave 没有bug!
----------------------------------------------------------------
ready事件
作用替代window.onload
window.onload js css html img flash.....加载完毕
DOMContentLoaded 高级浏览器
onreadystatechange --> 状态 document.readyState : interactive 正在渲染dom complete 渲染完成
全兼容,只给低版本ie使用!
网友评论