对象与构造函数[JavaScript_009]

对象


区别(特点):与C++,Java,C#不同,JavaScript生成的对象可以对其进行动态的添加,修改,删除对应的属性,比较灵活

构造函数


  • 原理(与函数方法的不同)
  1. 在函数体(构造函数)最前面隐式添加 this
    function Animal(){
          var this = {
                __proto__ : Animal.prototype
          };//隐式添加  
    }
  1. 执行赋值语句 this.key =value;
  • key:对象的属性(要添加的,要赋值的)关键词
  • value:对应的值或内容
  1. 隐式返回this 即 return this;

构造函数与函数的关系与区分


  • 开发时,声明构造函数使用大驼峰原则命名,声明函数时使用小驼峰命名原则
  • 使用函数来模拟构造函数
   function TestObject(name,age){
          var that= {};
          that.name = name;
          that.age = age;
          return that;
    }
  var test = TestObject('15','52');//注意此时没有使用关键词new,使用new时会返回原始值,若指定返回其他内容则会强制修改为this

New解释


     var testNum = new Number();//此时会生成对象,并不是Number,但是参与运算后可以转化为Number
     testNum.a = "abc";//此时可以添加属性值,与对象相似

包装类


     var testNum = 4;
     testNum.a = "abc";//此时可以添加属性值,但是不会报错,输出为undefined
    //隐式环节:包装类
    //1. testNum = new Number(4);
    //2. testNum.a ="abc";
    //3. delete testNum ;
     var str= "abcd";
     str.length = 2;
    console.log(str);//输出为abcd
    console.log(str.length);//输出为4
    //隐式环节:包装类
    //1. new String("abcd").length = 2
    //2. delete new String("abcd")
  • 练习
     var str= "abc";
     str += 1;
     if(str.length == 6){
            str.sign = "Hello World";
     }
     console.log(str.sign);//结果为undefined
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。