• javascript对象


     对象,在javascript中具有着不可替代的作用。

    一般而言,我们认为有两种方式定义对象:

    1、字面形式

    var object = {
      name: 'zhuhuoxingguang',
      sex: '男',
      age: 28      
    }
    

      这属于我们比较熟悉的方式,也是我们使用的比较多的一种方式。

    2、构造形式

    var object = {}
    object.name = '烛火星光';
    object.sex = '男';
    object.age = 28;
    

      也比较多见,我刚开始接触到对象的写法的时候,一直都是这么写的,随着时间的变化,发现这种写法相对前面一种显得麻烦很多,只有在特定的情况下,需要补充一些已经定义的变量的时候,才会采用这种方式。

    总体而言,javascript中对象的定义,也就基本上最熟悉的是这两张方式。

    但是仔细想想,javascript中有一个构造函数的用法,通过new 调用构造函数,也能生成一个对象。

    var ninja = new Ninja();
    

      此时ninja也属于一个对象,那么自然也可以通过ninja.property的方式添加各种属性,但是既然是构造函数,那自然也可以通过在函数内部定义各种属性了。

    function Ninja(){
      this.property = 属性;  
    }
    

      剩下的就是构造函数的用法了,包括各种继承的用法,殊途同归,其实这也是对象定义的方法中的一种,至于说可以通过构造函数实现的各种对象定义的扩展,不细述了。

      在ES5中新增了一种创建对象的方式,一般比较常见于对象继承方面,Object.create()。

    var object = {
      name: 'zhuhuoxingguang',
      sex: '男',
      age: 28      
    }
    var object1 = Object.create(object);
    

      此时,会完全继承object对象,具有object的一切属性和方法,接着就可以定义自身属性或者方法,而不会影响object对象。

      另外一种可能出现比较多的情况是Object.create(null);

    var ∅ = Object.create(null);
    

      创建一个真正的空的对象,他没有任何属性,包括__proto__属性也不存在,属于完完全全的空对象。

  • 相关阅读:
    跨期套利策略
    读书笔记 量化交易:如何建立自己的算法交易事业
    ESP8266固件修改可以控制多个IO方法
    ESP8266固件烧录方法
    关于毕设WiFi选型
    关于(x&y)+((x^y)>>1)的探究
    QML添加右键菜单
    初学QML之QML和C++混合方法
    初学QML之qmlRegisterType
    我的第一个QML Button的实现
  • 原文地址:https://www.cnblogs.com/zhuhuoxingguang/p/6196240.html
Copyright © 2020-2023  润新知