1.获取当前元素到body的距离
function getTL(obj){
var oT=obj.offsetTop; // 获取当前元素到定位父级的上侧距离
var oL=obj.offsetLeft;// 获取当前元素到定位父级的左侧距离
var p=obj.offsetParent; // 获取当前元素的定位父级
while(p){ // 判断定位父级是否为空
oT=oT+p.offsetTop+p.clientTop;
oL=oL+p.offsetLeft+p.clientLeft;
p=p.offsetParent;
};
return {left:oL,top:oT};
}
2.this 指向分为六种情况
1) 全局函数中的this,在全局环境下调用的时候指向window
注意:如果全局函数内部是严格模式,则在全局环境下不指向window 指undefined
2) 函数被赋值给某个事件时,指向绑定事件的对象
3) this在对象的方法中使用时,指向的是 方法所属的对象
4)在闭包中 this 指向window
5) 在构造函数中以及构造函数的原型对象中的this,都指向构造函数的实例对象
var arr=new Array() Array 是构造函数 arr 实例对象
6)箭头函数中的this 指向 箭头函数被定义的执行环境
3.this 指向函数运行时所属的对象
this 不指函数本身,也不指函数所对的作用域,指向调用此函数的对象
4.创建对象的方式有几种
1.直接给对象绑定属性和方法
2.通过字面量创建对象
3.工厂模式
4.构造函数
5.原型对象
6.混合模式(构造函数+原型对象)
5. new 操作符 做了什么工作
1) 实例的时候会创建一个空的新对象
2) 将 this指向为新建的空对象
3) 将绑定到this上的属性和方法,指向空对象
4) 最后将新建的对象返出
6.prototype和__proto关系
原型对象 prototype:每一个函数都一个原型对象,绑定到原型对象上的属性和方法是公共的
每一个对象上都有一个__proto__对象,只有函数对象才有prototype
__proto__是一个指针,它指的是构造它的对象的prototype
(实例化对象的__proto__ 指向构造函数的原型对象)