by shigemk2

当面は技術的なことしか書かない

JavaScript Ninjaの極意 6 オブジェクトの実体化


新しいオブジェクトを作成する最も単純な方法

var o = {};

関数として呼び出す方法とコンストラクタとして呼び出す方法があるよ。
new演算子コンストラクタ関数に適用することで、新たにアロケートされる
オブジェクトが作成される

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Listing 6.1</title>
    <script type="text/javascript" src="../scripts/assert.js"></script>
    <link href="../styles/assert.css" rel="stylesheet" type="text/css">
  </head>
  <body>
    <script type="text/javascript">

      function Ninja(){}                                    //#1

      Ninja.prototype.swingSword = function(){              //#2
        return true;
      };

      var ninja1 = Ninja();                                 //#3 関数としてよびだす
      assert(ninja1 === undefined,
             "Ninjaのインスタンスが作成されていない。");

      var ninja2 = new Ninja();                             //#4 コンストラクタとしてよびだす
      assert(ninja2 &&
             ninja2.swingSword &&
             ninja2.swingSword(),
             "インスタンスが存在し、メソッドを呼び出せる。" );

    </script>
  </body>
</html>