zoukankan      html  css  js  c++  java
  • 基于上一篇的模块化思路,巩固个小知识点——构造函数与原型模式

    具体可参考红皮书第三版中的6.2.4章

    书中的例题详细讲解了什么是原型模式

    function fop(){};
        fop.prototype.name="xiaohong";
        fop.prototype.age="12";
        fop.prototype.sayName=function(){
            console.log(this.name);
        }
        var per1=new fop();
        per1.sayName();
        var per2=new fop();
        per2.sayName();
    

     简单来说就是声明一个空的方法,为其原型添加属性和方法,那么每一个其创建的对象实例都共享原型中的内容。

    而在实际开发中更多的是构造函数与原型模式共用,构造函数中主要用来存储创建对象实例时的属性参数,而原型模式中则用来共享所有实例共享的方法,这样做之后就可以创建多个拥有自己特有属性同时又有相同方法的对象实例。如:

     function foo(name,age,job){
            this.name=name;
            this.age=age;
            this.job=job;
        }
        foo.prototype={
            sayname:function(){
                console.log(this.name)
            }
        };
        var xiaoming=new foo("xiaoming","12","aa");
        var zhanghong=new foo("zhanghong","12","bb");
        xiaoming.sayname();
        zhanghong.sayname();
    

     在这个例子中,xiaoming和zhanghong拥有自己的姓名,年龄和工作,但是他们又同时拥有sayname这个相同的方法来输出自己的name。

  • 相关阅读:
    (转)CentOS 6.5下Redis安装详细步骤
    (转)FastDFS_v5.05安装配置
    Mybatis 动态获取字段值(不需要创建javabean)
    Apache+tomcat集群配置
    Get Started and Make Progress in Machine Learning
    NLTK 模块不完全介绍
    python __future__
    python __init__.py和__all__
    自然语言处理
    Python搜索路径
  • 原文地址:https://www.cnblogs.com/weblv/p/5189035.html
Copyright © 2011-2022 走看看