JavaScriptのオブジェクト指向(OOP)の詳細

オブジェクト指向概要:
抽象コードに、外部の統一されたコール・インタフェースはプログラミングのアイデアを提供します。
オブジェクト:概要は、のプロパティとメソッドの順不同のコレクションです
プロトタイプベースのオブジェクト指向:プロトタイプベースのオブジェクト指向の方法、オブジェクトがありますコンストラクタはプロトタイプが使用して構築頼る
オブジェクトの親のJavaScriptのルートである
プロトタイプ:各関数はプロトタイプ性を持つことになり、このプロパティは、オブジェクトのメモリアドレスを格納するオブジェクトを指し示すメモリアドレスで
のinstanceof:オブジェクトか否かを検出しますクラスの特定のインスタンスに属します

Objectコンストラクタ:
VAR OBJ =新しい新機能(VAR1、VAR2、...、FunctionBody());
注:このように構成されたオブジェクトの効率が低いこと、このようにして作成されたオブジェクトが関数オブジェクトと呼ばれているが、他の一般的な呼び出しオブジェクト
のインスタンスを:

  var obj=new Function("a","b","return a+b") //构造一个函数对象
      var sun=obj(2,9)
      console.log(sun)

オブジェクトを作成するための6つの方法

    // 第一种  字面量方式创建对象
    var obj = {
      name: "qjj",
      age: 18,
      getName: function () {
        console.log(this.name)
      }
    }
    obj.getName()

    //第二种 使用new关键字 new一个对象  new Object
    var person = new Object()
    person.name = "qjj",
      person.height = 178,
      person.getHeight = function () {
        console.log(this.height)
      }
    person.getHeight()

    //第三种 构造函数模式创建对象
    function car(color, width) {
      this.color = color
      this.width = width
      this.getCor = function () {
        console.log(this.color)
      }
    }
    var bao = new car("red", 156)
    bao.getCor()

    //第四种 工厂模式创建对象
    function musicer(longer, dancer) {
      var obj = new Object()
      obj.longer = longer
      obj.dancer = dancer
      obj.getLonger = function () {
        console.log(this.longer)
      }
      return obj
    }
    var musicer1 = musicer(1554, "胡歌")
    musicer1.getLonger()


    //第五种 原型模式创建对象

    function producter() {

    }
    // producter.prototype.color = "blue"
    // producter.prototype.height = 555
    // producter.prototype.getHeig = function () {
    //   console.log(this.color)
    // }
    producter.prototype = {
      color: "blue",
      height: 555,
      getHeig: function () {
        console.log(this.color)
      }
    }

    var producter1 = new producter()
    producter1.getHeig()



    //第六种 混合模式创建对象
    function test(color, height, width) {
      this.color = color;
      this.height = height;
      this.width = width;
      this.getInfo = function () {
        console.log(this.color, this.height, this.width)
      }
    }
    test.prototype = {
      shope: "big"
    }

    var car1 = new test("red", "100", "666")
    car1.getInfo()
    console.log(car1.shope)
公開された25元の記事 ウォンの賞賛0 ビュー638

おすすめ

転載: blog.csdn.net/JamesHKK/article/details/104550704