您的位置:首页 > Web前端 > JavaScript

JavaScript创建对象的方法

2017-04-27 13:59 204 查看
1.字面量方式

    var  Person = {};

    Person.name ="张三";

    Person.age = 20;

    

    Person.speak = function(){

        alert(Person.name+"==="+Person.age);

    }

    

   // Person.speak();

    //alert(Person.name);

    
2. 使用function模拟class

    

    2.1 无参数

    function Animal(){

        this.name = "哈巴狗";

        this.age = 20;

        

        this.bite = function (){

             alert(this.name+"又要咬人了。。");

        }

    }

    

    var  animal = new Animal();

    animal.bite();

    

    

    

    2.2有参数  推荐这种

     function Animal1(name,age){

        this.name =name;

        this.age = age;

        

        this.bite = function (){

             alert(this.name+"又要咬人了。。");

        }

    }

    var  animal1 = new Animal1("小泰迪",2);

    var  animal2 = new Animal1("小藏獒",2);

    

    animal1.bite();

    animal2.bite();

    

    
3.使用工厂方式

     var obj = new Object();

     obj.name = "李四";

     obj.age = 25;

     

     obj.eat = function(){

         alert(this.name+"==eating....");

     }

      obj.eat();

     
 4.使用原型

      function Cat(){

         Cat.prototype.name = "小花猫";

         Cat.prototype.age = 2

         Cat.prototype.catchMouse = function(){

              alert(this.name+"=="+this.age);

         }

     }

     //创建的对象属性值都一样

     var cat1 = new Cat();

     var cat2 = new Cat();

     

     cat1.catchMouse();

     cat2.catchMouse();

     
5.结合原型以及function来创建

     function Pig(name,age){

         this.name = name;

         this.age = age;

        

         Pig.prototype.sleep = function(){

               alert(this.name+"== 吃完又要去睡觉了。。");

         }

     }

   

     

    
6.动态原型的方式

    function  fun(name,age){

        this.name = name;

        this.age = age;

        if(typeof fun.prototype.eat == "undefined"){

            fun.prototype.eat  = function(){

                alert(this.name);

            }

        }

    }

    var  fn = new fun("李四",20);

    fn.eat();

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: