• JavaScript 对象和包装类


    对象的创建方法

    • {}
    var obj = {} 
    • 系统自带的构造函数
    var obj = new Object()//Array()//Number()
    • 自定义的构造函数
    function Person(){
    
    }   
    var person1 = new Person()

    注:构造函数:大驼峰命名规则 TheFirstName 

           普通函数:小驼峰命名规则  theFirstName

    构造函数内部原理(必须加New)

    • 在函数体最前面隐式的加上this={}
    • 执行this.xxx=xxx
    • 隐式的返回this
    function Person(name,age){
             //var this={}; 隐式
             this.name=name;
             this.age=age;
    
             //return this隐式
    }   
    var person1 = new Person("zhangsan",18)

    注:构造函数显示返回对象,则返回对象

           构造函数返回原始值,则不受影响,继续返回this

    包装类

    • new String()
    • new Boolean()
    • new Number()

    包装类之后就有属性和方法了,原始值没有属性和方法

    var num =4;
    
    //new Number(3).len=3; 销毁
     num.len=3;
    
    //new Number(3).len=3; 销毁
    console.log(num.len);

    以上过程原始值可以访问属性。经历了隐式的包装类,每次包装完 销毁。

    注:undefined和null不可以设置属性值

    例1:

    // var str = "abcd";
    // str.length=2;
    // new string("abcd").length=2 销毁
    // console.log(str)//abcd

    例2:

    var str = "abc";
     str += 1;
    var test = typeof (str);
     if (test.length == 6) {
          test.sign = "typeof的返回结果";
    }
    console.log(test.sign); //undefinde

    typeof返回string字符串

    ---恢复内容结束---

    对象的创建方法

    • {}
    var obj = {} 
    • 系统自带的构造函数
    var obj = new Object()//Array()//Number()
    • 自定义的构造函数
    function Person(){
    
    }   
    var person1 = new Person()

    注:构造函数:大驼峰命名规则 TheFirstName 

           普通函数:小驼峰命名规则  theFirstName

    构造函数内部原理(必须加New)

    • 在函数体最前面隐式的加上this={}
    • 执行this.xxx=xxx
    • 隐式的返回this
    function Person(name,age){
             //var this={}; 隐式
             this.name=name;
             this.age=age;
    
             //return this隐式
    }   
    var person1 = new Person("zhangsan",18)

    注:构造函数显示返回对象,则返回对象

           构造函数返回原始值,则不受影响,继续返回this

    包装类

    • new String()
    • new Boolean()
    • new Number()

    包装类之后就有属性和方法了,原始值没有属性和方法

    var num =4;
    
    //new Number(3).len=3; 销毁
     num.len=3;
    
    //new Number(3).len=3; 销毁
    console.log(num.len);

    以上过程原始值可以访问属性。经历了隐式的包装类,每次包装完 销毁。

    注:undefined和null不可以设置属性值

    例1:

    // var str = "abcd";
    // str.length=2;
    // new string("abcd").length=2 销毁
    // console.log(str)//abcd

    例2:

    var str = "abc";
     str += 1;
    var test = typeof (str);
     if (test.length == 6) {
          test.sign = "typeof的返回结果";
    }
    console.log(test.sign); //undefinde

    typeof返回string字符串

  • 相关阅读:
    Single Threaded Execution
    多线程(第三天)
    多线程(第二天)
    IE中float:right单独一行
    web.xml配置
    java调用asmx的webservice
    跨域访问
    jsp页面导入jstl标签
    搜索dwr做即时聊天的时候看到的问题
    LigerUI tree在ie下显示不出来/LigerUI 控件在ie下错乱
  • 原文地址:https://www.cnblogs.com/FashionDoo/p/10525761.html
Copyright © 2020-2023  润新知