zoukankan      html  css  js  c++  java
  • javascript对象及包装类

    先看一个对象的操作

    var myLi = {
      name: 'Liyingjie',
      sex: 25,
      food: '',
      eat: function() {
        this.food = ''
      },
      buy: function(food) {
        this.food = food
      }
    }
    myLi.buy('shupian')
    
    //增删改查
    delete myLi.sex  //
    console.log(myLi)

    对象创建可通过

    1. var obj = {}
    2. 构造函数 new Object()

    看一个构造函数例子

    function Person(sex, name, age) {
      this.sex = sex
      this.name = name
      this.age = age
    
      //可以显示的返回对象 return {}
      //如果不是对象 比如 return 123 则会返回 return this
    }
    var person = new Person('男', 'LiYingjie', 25)  //person为Person的实例
    console.log(person instanceof Person) 

    构造函数原理
    1.在函数体最前面隐式加上 var this = {}
    2.执行 this.xxx = xxx
    3.隐式的返回this

    包装类(对于number string boolean)

    string number boolean 分别有两种值,一种是原始值,一种是对象值

    看一下例子

    var str = new String()
    var num = new Number(2)
    var boo = new Boolean()
    // 例如数值对象 有 属性和方法
    num.abc = 'a'
    num.say = function () {
      console.log('hello')
    }
    console.log(num)  
    console.log(num.abc)  //a
    num.say() //hello
    //但是当 对num进行运算操作后 num就变成原始值 (这句话有点问题,可以像原始值一样进行运算,num也还是个数值对象,原来的属相方法也还是存在)
    console.log(num * 4)  //8
    console.log(num)   
    console.log(num.abc)  //a
    num.say()  //hello

    再看一个包装类的解析例子

    var str = 'abcd' //原始值是没有属性和方法的,如果对原始值进行属性的赋值和访问,会new一个字符串对象 new String()
    str.abc = 'a'    //隐式的转换成字符串对象(这种形式叫包装类), num String('abcd').abc = 'a'  delete 然后删除
    console.log(str.abc)  //隐式的转换成字符串对象(这种形式叫包装类), num String('abcd').abc 因为上一步和这一步是不同的两个对象,且上一步变成包装类后又被删除,这一步刚形成包装类 属性abc也是不存在的, undefined
    str.length = 2   //隐式转new String('abcd')  new String('abcd').length = 2   delete 
    console.log(str) //对原始值不影响,还是 'abcd'
    console.log(str.length)  //隐式转new String('abcd').length = 4  length属性石系统自带的属性,所以存在

    end !!!

  • 相关阅读:
    微信小程序之授权 wx.authorize
    微信小程序之可滚动视图容器组件 scroll-view
    纯 CSS 利用 label + input 实现选项卡
    Nuxt.js + koa2 入门
    koa2 入门(1)koa-generator 脚手架和 mongoose 使用
    vue 自定义指令
    时运赋
    WEBGL 2D游戏引擎研发系列 第一章 <新的开始>
    EasyUI特殊情况下的BUG整理
    数字时钟DigClock
  • 原文地址:https://www.cnblogs.com/lyjfight/p/13815105.html
Copyright © 2011-2022 走看看