JavaScript_对象,包装类

对象:

举个栗子:

<html>
    <body>
        <script>
            //创建对象
            var mrDeng ={
                name:"laodeng",
                age:40,
                sex:"female",
                health:100,
                smoke:function(){
                    console.log('i am smoking, i am cool');
                    mrDeng.health--;
                },
                drink:function(){
                    console.log('i am drinking');
                    mrDeng.health++;
                }
            }
            </script>
    </body>
</html>

.代表函数引用
改 mrDeng.health 为 this.health,此处 this 指代的是自己,是第一人称,指的就是 mrDeng。因为 this 是在一个方法里面,所以指的这个方法。
smoke : function (){
console.log(‘I am good’)
this.health --;
},

  • 属性的增、删、改、查
    在上面的基础上 mrDeng.wife = “xiaoliu”,也可以在控制台操作。
    = “”等号后面的引号里面需要有值才可以,删除必须借助 delete mrDeng.sex

  • 对象的创建方法
    (1) var obj = {} 对象字面量/对象直接量 plainObject
    (2)构造函数
    1)系统自带的构造函数 Object()
    new Object(); Array(); Number(); Boolean(); Date();
    系统自带的构造函数 Object()可以批量生成对象,每一个对象都一样,但是彼此相互独立。 在 Object()前面加个 new,变成 new Object()的执行,就会真正的返回一个对象,通过 return 返回,拿变量接收。比如:var obj = new Object();
    var obj = new Object();var obj = {};这样写区别不大
    var obj = new Object();
    obj.name = ‘abc’;
    obj.sex = “male”;
    双引号和单引号都是表示的字符串,写双引号也可以写单引号,但是为了跟后端 php配合最好写单引号。如果要打印一个单个的引号,用正则表达式转义字符\
    2)自定义
    Object.create(原型)方法
    function Person(){}
    Person 是可以随便写的,也是构造函数
    构造函数跟函数结构上没有任何区别
    var person1 = new person();
    必须用 new 这个操作符,才能构造出对象
    构造函数必须要按照大驼峰式命名规则,但凡是构造函数就要大写,例如 TheFirNa
    car1 和 car 是长得一样,但是是不同的两个 car。方法名和对象名尽量不一样
    a 和 A 变量是两个变量,var car = new Car 里面 car 和 Car 是两个变量。
    这里的 color 可以和上面的重复。通过参数,使函数发生变化,变成自定义。
    构造函数内部原理
    前提必须要加 new,以下三步都是隐式的:
    1.在函数体最前面隐式的加上 var this = {} 空对象
    2.执行 this.xxx = xxx;
    3.隐式的返回 return this

包装类

  • new String();
  • new Boolean();
  • new Number();
    var num =123; → 原始值数字
    只有原始值数字是原始值,原始值不能有属性和方法。属性和方法只有对象有,包括对象自己,数组,function
    var num = new number 123; → 构造函数。是对象 123,不是原始值数字
    字符串类型的对象:
    var num = new Nunber(123); //数字类型对象
    var str = new String(‘abcd’); //字符串类型对象
    var bol = new Boolean(‘true’); //布尔类型对象
    undefined 和 null 不可以有属性
    不能写成 undefined.abc = 123;会报错。
//例:原始值不可能有属性和方法,但经过了包装类(加隐式)可以调用一些属性与方法
`var num = 4;` `num.len = 3;`
//系统隐式的加上 new Number(4).len = 3; 然后 delete
console.log(num.len);
//系统隐式的加上 new Number(4).len; 但是这个 new number 和上面的 new number
//不是同一个,所以返回 undefined
//而上面这些隐式的过程就是包装类
//例
var str = “abcd”;
str.length = 2;
//隐式的加上 new string(‘abcd’).length = 2; delete
console.log(str); 
console.log(str.length);
//答案是 abcd,4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李宸净

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值