javascript对象,包装类

对象

  1. 对象字面量/对象直接量

    var obj = {} : plainObject

    var obj = {
        name:'wdq',
        eat:function(){
            console.log('I`m eating');
        }
    }
    obj.name; // 访问属性
    obj.eat();// 执行函数
    
  2. 构造函数

    1. 系统自带的构造函数 Object() Array() Number()

      var obj = new Object();
      
      obj.name = 'wdq';
      obj.eat= function(){
          console.log('I`m eating');
      }
      
    2. 自定义

    function Car(){

    }
    var c = new Car();
    c.name = 'wdq';
    c.run = function(){}

    
    > 和普通的函数没有区别,只是人为的习惯首字母大写(大驼峰式命名规则)
    
    2.1 **属性,函数的设置及初始化**
    
    ```js
    function Car(){
     this.name = 'wdq',
     this.health = 100; 
     this.run = function(){
         this.health --;
     }
    } 
    var car = new Car();
    car.run();
    car.health; // 99
    

使用this给Car设置属性及函数,并初始化化


​ 2.2 带参数的构造函数

// 属性,函数有用户决定
function Car(_name,_frun){
    // this = {};
    this.name = _name,
    this.health = 100; 
    this.run = _frun;
    // return this;
} 
var car = new Car('BWM',
                  function(){this.health --;}
                  );
car.run();
car.health; // 99

上述构造函数原理:会先在函数体前隐式的创建this对象,即 this = {} ,然后执行this.xxx ,最后再return this

包装类型

Boolean,String,Number

  • 自动装箱
var num = 123; // (1)
num.len = 2; // (2)自动包装 ,new Number(num).len =2 
num.len // (3)undefined

num 为原始值,只有对象才能设置属性

步骤(2)会进行自动包装 ,重新生成对象,执行 new Number(num).len=2,

步骤(3)也会自动包装,生成新的对象, num.len不存在, 所以num.lenundefind`;

步骤(2)和(3)生成的是两个不同的对象

  • 自动拆箱

    var num = new Number(123);
    num * 2 // 246
    

    num * 2 会将num 隐式的转换成原始值类型,再乘以2

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、基本常识 浏览器的组成:1)shell部分 2)内核部分:(1)渲染引擎(语法规则...
    MrLsss阅读 341评论 0 4
  • @转自GitHub 介绍js的基本数据类型。Undefined、Null、Boolean、Number、Strin...
    YT_Zou阅读 1,214评论 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,820评论 1 45
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,060评论 0 2
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,112评论 1 10