美文网首页
五、Objects

五、Objects

作者: HarryWX | 来源:发表于2018-07-24 09:11 被阅读0次

    对象概述

    • javascript中的对象(物体),和其他编程语言中的对象一样,可以比照现实生活中的对象(物体)来理解它。javascript中对象(物体)的概念可以比照现实生活中实实在在的物体来理解。
      在javascript中,一个对象可以是一个单独的拥有属性和类型的实体。我们拿它和一个杯子做下类比。一个杯子是一个对象(物体),拥有属性。杯子有颜色,图案,重量,由什么材质构成等等。同样,javascript对象也有属性来定义它的特征。

    对象和属性

    • 一个 javascript 对象有很多属性。一个对象的属性可以被解释成一个附加到对象上的变量。对象的属性和普通的 javascript 变量基本没什么区别,仅仅是属性属于某个对象。属性定义了对象的特征(译注:动态语言面向对象的鸭子类型)。你可以通过点符号来访问一个对象的属性。
      和其他 javascript 变量一样,对象的名字(可以是普通的变量)和属性的名字都是大小写敏感的。你可以在定义一个属性的时候就给它赋值。例如,我们创建一个myCar的对象然后给他三个属性,make,model,year。具体如下所示:
    var myCar = new Object();
    myCar.make = "Ford";
    myCar.model = "Mustang";
    myCar.year = 1969;
    
    • 对象中未赋值的属性的值为undefined(而不是null)。

    • 对象有时也被叫作关联数组, 因为每个属性都有一个用于访问它的字符串值。

    myCar["make"] = "Ford";
    myCar["model"] = "Mustang";
    myCar["year"] = 1969;
    

    枚举一个对象的所有属性

    • 从ES5开始,有三种原生的方法用于列出或枚举对象的属性。
      • for...in循环:该方法访问一个对象及其原型链中所有可枚举的属性。
        +Object.keys(o):该方法返回一个对象o自身包含
        +Object.getOwnPropertyNames(o):该方法返回一个数组,它包含了对象o所有拥有的属性(无论是否可枚举)的名称。

    创建新对象

    使用对象初始化器

    var myHonda = {color: "red", wheels: 4, engine: {cylinders: 4, size: 2.2}};
    

    使用构造函数

    1. 通过创建一个构造函数来定义对象的类型。首字母大写是非常普遍而且很恰当的惯用法。
    2. 通过new创建对象实例。
    function Car(make, model, year) {
      this.make = make;
      this.model = model;
      this.year = year;
    }
    var mycar = new Car("Eagle", "Talon TSi", 1993);
    

    使用Object.create方法

    • 对象也可以用Object.create()方法创建。该方法非常有用,因为它允许你为创建的对象选择其原型对象,而不用定义一个构造函数。
    // Animal properties and method encapsulation
    var Animal = {
      type: "Invertebrates", // Default value of properties
      displayType : function() {  // Method which will display type of Animal
        console.log(this.type);
      }
    }
    
    // Create new animal type called animal1 
    var animal1 = Object.create(Animal);
    animal1.displayType(); // Output:Invertebrates
    
    // Create new animal type called Fishes
    var fish = Object.create(Animal);
    fish.type = "Fishes";
    fish.displayType(); // Output:Fishes
    

    继承

    • 所有的JavaScript对象继承于至少一个对象。被继承的对象被称作原型,并且继承的属性可通过构造函数的prototype对象找到。

    相关文章

      网友评论

          本文标题:五、Objects

          本文链接:https://www.haomeiwen.com/subject/nptjmftx.html