js对象和包装类

目录

对象

1.对象的增删改查

2.对象的创建方法

3.构造函数

包装类


 

对象

跟C++类似,属性和方法的集合;

语法如下:

var person = {
    name:"xiaoMing",
    age:18,
    sex:"male",
    health:100,
    smoke: function(){
        console.log("i am smoking");
        this.health--;
    },
    exercise: function(){
        console.log("i am running");
        this.health++;
    }
}
console.log(person.health);
person.smoke();
console.log(person.health);
person.exercise();
console.log(person.health);

1.对象的增删改查

接着上面的例子:

增,直接加即可

person.height = "175cm";
console.log(person.height);

 

查,上面也写了,就是直接调,这里就忽略不写了;

改,同理,就是调用赋值即可,忽略;

 

删(需要用到 delete)

console.log(person.age);//18
delete person.age;
console.log(person.age);//返回undefined,不报错

 

2.对象的创建方法

如下:

//1. var obj = {}  plainObject  对象字面量/对象直接量
//2.构造函数(两种方法)
//      1) 系统自带的构造函数 Object()
//      2) 自定义

//new + 系统自带的构造函数 产生对象,和 var obj = {} 没有任何区别
var obj = new Object();
obj.name = 'abc';
obj.sex = 'male';
obj.say = function(){
    
}

 

3.构造函数

写法跟函数一样;(为了方便维护,区分与一般函数区别,所以取名方式一般为 大驼峰命名规则)

function person(){

}
var person1 = new person;
person1.name = 'abc';
console.log(person1);

例:

function person(name, age, sex){
    this.name = name;
    this.age = age;
    this.sex = sex;

}
var student = new person('zhangsna',18,'male');

 

包装类

看下面这段代码

var num = 4;
num.len = 3;
console.log(num.len); //打印undefined

这里 num 被赋予了 123,然而第二句 直接再加一个属性后,第三句打印竟然出现 undefined;

需要注意的是,js中原始值是没有属性和方法的,所以在这几行代码中,肯定经历了一个过程,即:包装类

 

过程如下:

//包装类
var num = 4;
        
num.len = 3;
//new Number(4).len = 3; 
//delete  

//new Number(4).len
console.log(num.len); //打印undefined

当代码运行到第二句时,系统发现 num 不是一个对象,所以 系统会自动创建一个对象,并给它的属性 len 赋为 3,然后delete销毁这个对象;

当代码运行到第三句,系统发现一个不是对象的原始值在调用方法,那么善良的系统还是会创建一个对象,但是此对象并非第二句代码的对象,所以是undefined;

 

举例:

var str = 'abcd';
str.length = 2;
console.log(str);//打印abcd

//new String('abcd').length
console.log(str.length);//打印4

这里第二行代码就是包装类的过程,不影响后面的代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值