Javascript 中创建自定义对象的方法汇总(2)


     function Student(name, age, friends) {
         this.name = name;
         this.age = age;
         this.friends = friends;
     }
     Student.prototype = {
         constructor: Student,
         sayName: function () {
             alert(this.name);
         }
     };

总结:构造函数与原型的组合 是一种获得广泛认可的创建自定义类型的方法。 也是上面这些方法中的最优方法。

/*************************************************************************************************************/

其实上面的创建对象的方法已经很多了,但是还是有可能出现一些比较特殊的场景,需要继续的优化。

动态原型模式:

它是构造函数与原型组合 的一种优化。对于那些共用的属性和方法,如果初始化之后,就不必再重复初始化,提高效率。

复制代码 代码如下:


       function Student(name, age) {
           this.name = name;
           this.age = age;
           if ((typeof this.sayName) != "function") {
               Student.prototype.sayName = function () {
                   alert(this.name);
               }
           }
       }
       var stu = new Person("ming", 20);
       //alert(stu instanceof Student);
       stu.sayName();
      var stuNew = new Person("hong", 18);
      //alert(stuNew instanceof Student);
      stuNew.sayName();

当创建多个student对象时,sayName 方法只会初始化一次。

最后还有一种很有用的创建对象的方式,就是稳妥构造函数。

稳妥构造函数模式:

在这个模式中会禁止使用this和new,所有对象没有公共的属性。只能读取变量的值,而不能修改。

复制代码 代码如下:


      ////稳妥构造函数模式
      function Student(name, age) {
          var o = new Object();
          o.sayName = function () {
              alert(name);
          }
          return o;
      }
      var stu = Student("ming", 21);
      stu.sayName();

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgsyyz.html