JS对象、包装类

梦想的初衷 提交于 2020-02-06 11:18:50

JS对象

对象的创建方法:

1 var Object = {} plainObject  对象字面量/对象直接量

2 构造函数(两种)大驼峰式命名规则

  1)系统自带的构造函数 Object()  new Object()

  2)自定义

构造函数内部原理:

构造函数三段式

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

首先实现第一步隐式变化:

1在逻辑的顶端生成 var this = {}

function  Student(name,age,sex) {
     //var this = {};
     this.name = name;
     this.age = age;
     this.sex = sex;
}

2然后根据形式参数的个数对this 进行增加属性并赋值

那么这个函数的 AO 可以大致理解为: AO{ this:{name:'zhangsan' ,age:18,sex:'male' };

3最后将这个return返回

function  Student(name,age,sex) {
   1//var this = {
   2//      name:"zhangsan",
    //      age:18,
    //      sex:"male"
    // };
     this.name = name;
     this.age = age;
     this.sex = sex;
   3//return this;
}

   包装类

  • Boolean

  • String

  • Number

原始值不能有属性和方法,当给它们添加属性的时候系统会自动进行包装类并销毁。

var num = new Number(3);
var str = new String("chen");

var num = 3;
num.len = 2;
//new Number(3).len =2; delete
console.log(num.len);//endefined

var str = "abcd";
str.length = 2;
//new String('abcd).length = 2; delete;
console.log(str);//abcd
//new String('abcd).length
//.length是string系统自带的属性。
console.log(str.length);//4

var str  = "abc";
str += 1;
var test = typeof(test);
if(test.length == 6){
    test.sign = "111";
    //new String(test).sign = "111";
}
//new String(test).sign
console.log(test.sign);
//undefined

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!