zoukankan      html  css  js  c++  java
  • JavaScript对象的几种创建方式

    1.使用工厂模式创建对象

    function createPerson(name,age,job){
     var o = new Object();
     o.name = name;
     o.age = age;
     o.job = job;
     o.sayName = function(){
      alert(this.name); 
     };
     return o; 
    }
    var person1 = createPerson('Nike',29,'teacher');
    var person2 = createPerson('Arvin',20,'student');

    2.使用构造函数创建对象

    function Person(name,age,job){
     this.name = name;
     this.age = age;
     this.job = job;
     this.sayName = function(){
     alert(this.name);
     }; 
    }
    var person1 = new Person('Nike',29,'teacher');
    var person2 = new Person('Arvin',20,'student');

    3.原型模式创建对象

    function Person(){}
    Person.prototype.name = 'Nike';
    Person.prototype.age = 20;
    Person.prototype.jbo = 'teacher';
    Person.prototype.sayName = function(){
     alert(this.name);
    };
    var person1 = new Person();
    person1.sayName();

    4.混合构造和原型模式

    function Person(name,age,job){
     this.name =name;
     this.age = age;
     this.job = job;
    }
    Person.prototype = {
     constructor:Person,
     sayName: function(){
     alert(this.name);
     };
    }
    var person1 = new Person('Nike',20,'teacher');

    5.动态原型模式

    function Person(name,age,job){
        this.name=name;
        this.age=age;
        this.job=job;
    
        if(typeof this.sayName!="function"){
            Person.prototype.sayName=function(){
                alert(this.name);
            };
        }
    }
  • 相关阅读:
    顺时针打印矩阵
    topK问题
    9. Palindrome Number(回文数)
    Spinner用法详解
    翻转字符串
    清雨的自助餐(斐波那契数列的应用)
    2. Add Two Numbers(链表尾插法)
    assign和weak的区别
    14-最长公共前缀
    12 13-int与罗马数字转换
  • 原文地址:https://www.cnblogs.com/Jessical8619/p/8527936.html
Copyright © 2011-2022 走看看