目录
2.1.1 上下文规则1:对象.函数(),则函数()的上下文是这个打点.的对象
2.1.2 上下文规则2:圆括号直接调用函数,则函数上下文是window对象
2.1.3 上下文规则3:数组(类数组对象)枚举出函数进行调用,上下文是这个数组(类数组对象)
2.1.4 上下文规则4: IIFE中的函数,上下文是window对象
2.1.5 上下文规则5:定时器、延时器调用函数,上下文是window对象
2.1.6 上下文规则6:时间处理函数的上下文是绑定事件的DOM元素
1.认识对象
1.1 对象的语法
1.1.1 属性的更改
1.1.2 属性的更改
1.1.3 属性的创建
1.1.4 属性的删除
1.2 对象的方法
1.2.1 方法的调用
1.3 对象的遍历
1.4 浅克隆和深克隆
1.4.1 浅克隆
a、b都被分开了,但是c没有,因为c是引用类型值。所以是浅克隆
1.4.2 深克隆
<script>
var obj1={
a:1,
b:2,
c:[33,44,{
m:55,
n:66,
p:[77,88]
}]
}
//深克隆
function deepClone(o){
//判断o是对象还是数组
if(Array.isArray(o)){
//数组
var result=[];
for(var i=0;i<o.length;i++){
result.push(deepClone(o[i]));
}
}else if(typeof(o)=='object'){
//对象
var result={};
for(var k in o){
result[k]=deepClone(o[k]);
}
}else{
//基本类型值
result=o;
}
return result;
}
var obj2=deepClone(obj1);
console.log(obj2);
console.log(obj1.c==obj2.c)//false
obj1.c.push(99);
console.log(obj2);//obj2不变
obj1.c[2].p.push(999);
console.log(obj2);
</script>
2.上下文
2.1 函数的上下文(没太懂)
2.1.1 上下文规则1:对象.函数(),则函数()的上下文是这个打点.的对象
2.1.2 上下文规则2:圆括号直接调用函数,则函数上下文是window对象
2.1.3 上下文规则3:数组(类数组对象)枚举出函数进行调用,上下文是这个数组(类数组对象)
2.1.4 上下文规则4: IIFE中的函数,上下文是window对象
2.1.5 上下文规则5:定时器、延时器调用函数,上下文是window对象
2.1.6 上下文规则6:时间处理函数的上下文是绑定事件的DOM元素
2.2 call和apply
2.3 上下文简单总结
3. 构造函数和类
3.1 new调用函数
3.2 构造函数
4.prototype和原型链查找
4.1 hasOwnProperty和in