欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

对象,包装类

程序员文章站 2024-02-29 23:26:58
...

对象(基础变量类型Object)

 var Object={
            name : "baoxiaohai",
            level:  0,
            sex  : "male",       //属性
            study: function(){
               this.level++;     //若要在方法内部指定属性的运算,可以用 **this.属性**指代
            }                    //方法
        }
  • 属性值的增删改查
    : 对象.属性=“ ”;直接操作。
    : 对象.属性( (document.write();)不可以用于整个对象。)
    : 直接给属性重新赋值
    : delete 对象.属性
    在一个对象的属性未被定义之前返回值为undefined

对象的创建方法

  • var obj = { } plainObject 对象字面量/对象直接量
  • 构造函数
    ①系统自带的构造函数Object( ); Array( ); object=new Object( );
    ②自定义(约定俗成的大驼峰式命名规则,每一个单词的首字母都大写)

    function   ObjectName{
    
                   };
    var  a = new ObjecrName( );
    var  b = new ObjectName( );

    a与b相互独立

构造函数的内部原理

调用new操作符隐式构造

 function Student(name,age,sex){
           //调用New操作符在此处隐式创建了this{
             name:""   age: " "   sex:" "
           }
            this.name = name ;
            this.age = age;
            this.sex = sex;
            this.gread = 2017;
           //在此处隐式返回this;
           //如果在此处加上return干扰返回值,如果返回原始值系统自动忽略,如果是对象可以干扰到返回值
        }
        var Student1 = new Student('baiyuting', 3, 'femeal');
        var Student2 = new Student('baoxiaohai', 4, 'male');

包装类

数字对象:(可以像数字一样被操作)var num = new Number("123"); num*2=246 ==>数字
原始值没有属性

        var num = 4;
        num .len = 3;
        //系统隐式创建数字对象new Number(4).len = 3;
        //执行完赋值 ==> delete
        //创建一个新的数字对象new Number(4).len输出,此时num.len无实际值
        console.log(num.len);//undefined

既然原始值没有属性,那字符串的长度是怎么输出的呢???
过程大致如下,字符串的原型String上有length属性。

        var str = "abcd";
        console.log(str.length)
        //console.log(new String("abcd").length);
        str.length = 2;
        //new String('abcd').length = 2; ==> delete
        console.log(str);//abcd

那么字符串是否可以增加别的属性呢???

        var str = "abc";
        str += 1;
        var test = typeof(str);
        if(test.length==6){
            test.sign = "typeof的返回结果可能为string";
            // text=new String().sign="typeof的返回结果可能为string"; delet
        }
        console.log(test.sign);//undefined

由此可见原始值并没有属性,也不能通过后期增加。
对象,包装类