zoukankan      html  css  js  c++  java
  • 创建对象方法

    //1.工厂模式
        function person(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 = person('lj',22, '工人');

    //2.构造函数模式
        function Person(name, age, job) {
            this.name = name;
            this.age = age;
            this.job = job;
            this.sayName = function () {
                alert(this.age)
            }
        }
        var person2 = new person('lj',22, '工人');


    //3.原型模式
    function Person() {

    }
    Person.prototype.name = 'lj';
    Person.prototype.age = 22;
    Person.prototype.job = '工人';
    Person.prototype.sayName = function () {
        alert(this.name)
    }
    var person3  = new Person();

    //3.1更简单的原型方法
    function Person() {

    }
    Person.prototype = {
        name : 'lj',
        sge:22,
        job:'工人',
        sayName:function () {
            alert(this.name)
        }
    }

    var person3  = new Person();

    //4.组合使用构造函数和原型模式(也是最常用的方法)
    function PersonPrototype(name, age, job) {
        this.name = name;
        this.age = age;
        this.job = job;
    }
        Person.prototype.sayName = function () {
            alert(this.name)
        }
    var person4 = new Person('lj',22, '工人');



    //5.动态原型模式
        function person() {
            //属性
            this.name = name;
            this.age = age;
            this.job = job;
            //方法
            if(typeof this.sayName != "function"){
                Person.prototype.sayName = function () {
                    alert(this.name)
                }
            }
        }

    var person5 = new Person('lj', 22, '工人')
        //6.寄生构造函数模式
        function Person(name, sge, job) {
            var o = new Object();
            o.name = name;
            o.age = age;
            o.job = job;
            o.sayName = function () {
                alert(this.name)
            }
            return o ;
        }
    var person6 = new Person('lj', 22, '工人');

    //7.稳妥构造函数
        function person (name, age, job) {
            //创建要返回的对象
            var o = new  Object();
            //可以在这里定义私有变量和函数

            //添加方法
            o.sayname = function () {
                alert(name)
            }
            return o ;
        }
    var person7 = new Person('lj', 22, '工人');

  • 相关阅读:
    基于vue的可视化编辑器
    IOS系统兼容input keyup事件
    js滚动事件实现滚动触底加载
    移动端 input 输入框实现自带键盘“搜索“功能并修改X
    clipboard.js兼容ios
    js实现点击复制网页内容(基于clipboard.js)
    js实现点击复制网页内容(基于execCommand)
    knn 数字识别
    knn 算法 k个相近邻居
    sklearn 线性回归
  • 原文地址:https://www.cnblogs.com/liujian9527/p/6094334.html
Copyright © 2011-2022 走看看