对象、对象枚举、包装类

本文详细介绍了JavaScript中创建对象的多种方式,包括对象字面量、构造函数和自定义构造函数,并深入解析了构造函数的内部实现原理。此外,还探讨了对象的增删改查操作,以及对象枚举和包装类的概念。

创建对象

1.对象字面量/对象直接量
var obj = {
key : value,
name : ‘king’,
}
2.构造函数
系统自带的构造函数 new Object( )
var obj = new Object( );
obj.name = ‘king’;
obj.age = 20;
自定义构造函数 名字使用大驼峰

        function Car(color) {
            this.color = color;
            this.name = 'BMW';
            this.height = '1400';
            this.lang = '4900';
            this.weight = 1000;
            this.health = 100;
            this.run = function () {
                this.health--;
            }
        }
        var car = new Car('red');
        var car2 = new Car('green'); 
        car.name = 'Maserati'; 
        car1.name = 'Merz'; 
        car1.run();

构造函数内部原理

在函数体最前面隐式加上this = {}
执行 this.xxx = xxx;
隐式返回this
在这里插入图片描述

对象的增,删,改,查
增加一个属性:obj.age = ‘20’
删除一个属性: delete obj.name name属性会被删除
更改一个属性: obj.age = ‘30’
查找一个属性: obj.age

对象枚举

//遍历 枚举 enumeration

for in

1、has OwnProperty( ) //查看属性是否是自己的

2、in //判断属性是否可以调用

// A instanceof B (A对象是不是B构造函数构造出来的)
//看A对象的原型链上有没有B的原型
3、instanceof

        var obj = {
            name: '12',
            age: 123,
            sex: 'male',
            __proto__: {
                lastName: 'king'
            }
        }
        for (var prop in obj) {
            //console.log(obj[prop])
            if (obj.hasOwnProperty(prop)) {
                console.log(obj[prop])
            }
        }

包装类

原始值没有属性,但是通过原始值调用属性,系统会通过原始值的·类型隐式调用 new方法将原始值包装一下,这个过程叫包装类

var str = 'abc';
srt.length ---> new String('abc').length 
console.log(srt.length) ---> console.log(new String('abc').length)

其他

属性表示方法
obj.prop
obj[‘prop’]

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值