九门宁生

导航

js构造函数

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <script>
    // 工厂函数 创建多个对象
    // function createHero(name, blood, weapon) {
    //   var o = new Object();
    //   o.name = name;
    //   o.blood = blood;
    //   o.weapon = weapon;
    //   o.attack = function () {
    //     console.log(this.weapon + ' 攻击敌人');
    //   }
    //   return o;
    // }

    // 构造函数 -- 构造对象的函数
    function Hero(name, blood, weapon) {
      this.name = name;
      this.blood = blood;
      this.weapon = weapon;

      this.attack = function () {
        console.log(this.weapon + ' 攻击敌人');
      }
    } 

    // 1 会在内存中创建一个空对象
    // 2 设置构造函数的this,让this指向刚刚创建好的对象
    // 3 执行构造函数中的代码
    // 4 返回对象
    var hero = new Hero('刘备', 100, '');
    // hero.attack();
    // 
    // 无法使用typeof获取对象的具体类型
    // console.log(typeof hero);
    // var arr = new Array();
    // console.log(typeof arr);



    // constructor  构造器 / 构造函数
    // 获取对象的具体类型   不建议
    // console.log(hero.constructor === Hero);
    // var arr = []; //new Array()
    // console.log(arr.constructor === Array);
    // 
    // 
    // instanceof 判断某个对象是否是某个构造函数的实例/对象
    
    console.log(hero instanceof Hero);
    var arr = [];
    console.log(arr instanceof Array);

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

 

posted on 2019-08-29 15:55  九门宁生  阅读(204)  评论(0编辑  收藏  举报