• javascript创建对象之原型模式(三)


    少废话,先上代码:

    function Human() { }
            Human.prototype.name = "成吉思汗";
            Human.prototype.sex = "男";
            Human.prototype.say = function () {
                alert(this.name);
            }
            var man = new Human();
            man.say(); //成吉思汗
            var woman = new Human();
            woman.say(); //成吉思汗
            alert(man.say == woman.say);//true

    prototype是javascript中非常核心的知识点之一.他是javascript中的面向对象思想中起着至关重要的作用.

    我们来看看prototype是何方妖孽,拥有如此大的威力.

    js中每一个函数都有一个prototype属性,我们称之为原型.(这个解释有点烂,等于没说,没办法,不知道怎么给他下定义了^_^);

    使用原型对象的好处之一就是让所有的实例共享同样的位于原型上的属性和方法.

    上面例子中,name,sex,say都位于prototype上,所以man和woman共享这些属性和方法.内存中虽然有了2个实例,但是他们却只有一份name和sex和say.

    这在复杂的项目中可谓是极大的节省了内存.

    也因为如此,原型模式才更优胜于上章节介绍的构造函数模式.

    这种简单的原型模式一眼就能看出有很多不切合实际的东东:

    1.既然所有的属性和方法都共享了,那么我实例化一个对象不就够了吗?

    2.每一个对象都是一个个体(有自己特有的属性或方法),而又有相似性(共同的属性和方法),

    接下来就有了构造函数模式和原型模式共同作用的结果.这种组合模式在下一章继续.

  • 相关阅读:
    监督学习——AdaBoost元算法提高分类性能
    监督学习——logistic进行二分类(python)
    监督学习——朴素贝叶斯分类理论与实践
    nrm 工具的使用
    Linux下安装MySQL
    Node环境配置
    07.移动端类库
    06.网页布局
    05.预处理器
    04.触屏事件
  • 原文地址:https://www.cnblogs.com/guoyansi19900907/p/3592153.html
Copyright © 2020-2023  润新知