<JavaScript>面向对象

目录

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 浅克隆 

1.4.2 深克隆

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

4.2 在原型链上添加方法

4.3 原型链的终点


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

 

4.2 在原型链上添加方法

4.3 原型链的终点

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值