JavaScriptオブジェクトObjectの理解と使用(一)

2073 ワード

ObjectについてObjectコンストラクタは、与えられた値のために対象包装器を作成します.
与えられた値がnullまたはundefinedであれば、空のオブジェクトを作成して返します.そうでなければ、与えられた値に対応するタイプのオブジェクトを返します.
非構造関数として呼び出されると,Objectはnew Object()に等しい.
ObjectのインスタンスとObjectのプロトタイプのオブジェクト
JavaScriptのほとんどのオブジェクトはObjectの例です.すべてのオブジェクトはObject.prototypeから方法と属性を継承しますが、それらは上書きされます.例えば、他のコンストラクタのプロトタイプは、constructor属性をカバーし、自分のtoString()方法を提供する.Objectプロトタイプオブジェクトの変更は、これらの変更を受けた属性および方法がプロトタイプチェーンに沿ってさらに上書きされる以外、すべてのオブジェクトに伝播されます.
Object.prototype
Object.prototype属性はObjectの原型オブジェクトを表します.典型的なオブジェクトは、これらの属性が遮蔽される可能性があるにもかかわらず、Object.prototypeの属性を継承する(方法を含む).
所有するデフォルトの属性
  • Object.prototype.com nstructor特定の関数は、オブジェクトのプロトタイプを作成するために使用されます.
  • Object.prototype.uプロト.オブジェクトが実用化されたときに原型となるオブジェクトを指します.
  • Object.prototype.unoSuchMethod_定義されていないオブジェクトのメンバーがメソッドとして呼び出されると、定義され実行される関数が許可されます.
  • Object.prototype.toString()
  • 各オブジェクトには、一つのテキスト値として表現されるオブジェクト、または一つのオブジェクトが予想される文字列で参照されるときに自動的に呼び出し
  • がある.
  • デフォルトの場合、toString()方法は、各Objectオブジェクトによって引き継がれる
  • .
  • 方法はカスタムオブジェクトによってカバーされ、カスタム方法は文字列
  • を返さなければならない.
    function Dog(name,breed,color,sex) {
       this.name=name;
       this.breed=breed;
       this.color=color;
       this.sex=sex;
    }
    var theDog = new Dog("Gabby","Lab","chocolate","female");
    
    theDog.toString();
    //      [object Object]
    
    //   toString()
    
    Dog.prototype.toString = function dogToString() {
      var ret = "Dog " + this.name + " is a " + this.sex + " " + this.color + " " + this.breed;
      return ret;
    }
    
    //               theDog.toString(),JavaScript        dogToString()   (dogToString()         )
    
    
    変数タイプ検出
    //     Function.prototype.call()    Function.prototype.apply()       
    
    var toString = Object.prototype.toString;
    
    toString.call(new Date); // [object Date]
    toString.call(new String); // [object String]
    toString.call(Math); // [object Math]
    
    //Since JavaScript 1.8.5
    toString.call(undefined); // [object Undefined]
    toString.call(null); // [object Null]