2.操作JS中的对象

一、创建对象

  • 对象的属性为键值对,有属性和行为(方法)两个组成
 var dog = {
            feet: 4,
            color: 'yellow',
            run: function(){
                console.log('小狗会跑路')
            },
            eat: function(){
                console.log('修勾会吃东西')
            }
        }
 console.log(this.dog); // {feet: 4, color: 'yellow', run: ƒ, eat: ƒ}
  • 通过自定义构造函数进行创建
    • 固定参数应用场景
      • 明确知道对象属性
      • 位置要严格对应
<script>
    // 自定义构造函数
    function Woman (name,sex,age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    var woman = new Woman('dada','woman','18');
    console.log(woman);  /*Woman {name: 'dada', sex: 'woman', age: '18'}*/

</script>
  • 对象类型参数
    - 维护、使用方便
    - 易于理解
<script>
        // 自定义构造函数
        function Man(obj){
            this.name = obj.name;
            this.age = obj.age;
        }

        var man = new Man({name:'dahai',age:12});
        console.log(man); //Man {name: 'dahai', age: 12}

</script>

二、对象操作

  • 通过"."创建属性
  • 通过delete运算符
  • 通过".“运算符可以访问,对象属性”[]“操作符访问,”[]"⾥⾯写字符串
<script>
        var dog = {
            feet: 4,
            color: 'yellow',
            run: function(){
                console.log('小狗会跑路')
            },
            eat: function(){
                console.log('修勾会吃东西')
            }
        }

        // 新增属性
        // 1. . 赋值
        dog.name = '大黄';
        console.log(dog);  //{feet: 4, color: 'yellow', name: '大黄', run: ƒ, eat: ƒ}
        // 2. [] 增加属性
        dog['tail'] = 'short'; //{feet: 4, color: 'yellow', name: '大黄', run: ƒ, eat: ƒ, tail:'short'}
        // 删除属性
        delete dog.tail;
        console.log(dog); //{feet: 4, color: 'yellow', name: '大黄', run: ƒ, eat: ƒ}
    </script>	
  • 访问自身属性
    • 通过this关键字访问自身属性

new作用

  • 如果没有new,直接调用构造函数
    • 构造函数的this指向的是window对象
<script>
	function Man(obj){
	            this.name = obj.name;
	            this.age = obj.age;
	            console.log(this); // Window对象
	        }
	
	var man =Man({name:'dahai',age:12}); // undefined,因为构造参数没有返回值
</script>
  • 作用
    • 创建一个新的空的对象
    • 将构造函数的作用域赋值给对象(即this指向新对象)
    • 执行构造函数(即为新的对象添加属性)
    • 将这个新对象进行返回
<script>
        function Man(obj){
            // this={};
            this.name = obj.name;
            this.age = obj.age;
            // return this;
        }

        var man =new Man({name:'dahai',age:12}); // undefined,因为构造参数没有返回值
        console.log(man); //Man {name: 'dahai', age: 12}
 </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值