JavaScript定义对象的几种方法总结

    技术2023-07-13  93

    <!DOCTYPE html> <html>     <head>         <meta charset="UTF-8">         <title></title>     </head>     <body>         <script type="text/javascript">                               //构造函数方式定义对象         function Person(){             this.name = '张三';//成员属性             this.age = 20;//成员属性             this.say = function(){//成员方法             console.log('我会JavaScript');             };         }         var p1 = new Person();//实例化         console.log(p1.name); /****************************************************/                  //原型对象方式定义对象         function Person2(){                  }         Person2.prototype.name = '李四';         Person2.prototype.age = 18;         Person2.prototype.say = function(){             console.log('原型对象');         };         var p2 = new Person2();         var p3 = new Person2(); /****************************************************/                  //混合方式         function Person3(n,a){         //非将函数类型的成员放到构造函数内部             this.name = n;             this.age = a;             this.sanwei = ['100cm','90cm','110cm']         }         //将函数类型的成员放到原型对象上         Person3.prototype.say = function(){             console.log(1234);         };                  var p4 = new Person3('李明',20);         var p5 = new Person3('王阳',24);              /****************************************************/         //动态混合模式         function Person4(n,a){         //非将函数类型的成员放到构造函数内部             this.name = n;             this.age = a;             this.sanwei = ['100cm','90cm','110cm']         }         //判断,如果Person5的原型对象上有say方法,就不需要再次绑定了         if(!Person4.prototype.say){         //将函数类型的成员放到原型对象上             Person4.prototype.say = function(){             console.log(1234);             };         }         var p6 = new Person4('李明',20);         var p7 = new Person4('王阳',24);    

    /****************************************************/                  //字面量方法         var Person5={             name:'王明',             age:'22',             say:function(){             alert('我学JavaScript');             }                 };         console.log(Person5.say());

    /****************************************************/     //采用内置构造器创建对象     function f2() {         var teacher = new Object();         teacher.name = "王老师";         teacher.age = 18;         teacher.work = function(){             alert("我教Java");         }         alert(teacher.name);         alert(teacher.age);         teacher.work();     }     f2();         </script>     </body> </html>

    Processed: 0.009, SQL: 9