JS中构造函数的方法定义在原型对象里

构造函数中的方法每当new一个对象的时候,就会创建一个构造函数里的方法,如果多个实例对象就会创建多个方法,占用内存,没有提高代码的复用性;

将方法定义到构造函数的原型对象里,创建多个实例对象而共享一个方法,方法创建了一次。

<script>
        function Persion(name, age) {
            this.name = name;
            this.age = age;      //在构造函数里定义方法
            this.sing = function () {
                console.log("I can sing");
            }
        }
        var p1 = new Persion("jack", 12);
        var p2 = new Persion("tom", 13);
        console.log(p1.sing === p2.sing);//false



        function Persion2(name, age) {
            this.name = name;
            this.age = age;
        }    //在构造函数的原型对象里定义方法
        Persion2.prototype.sing = function () {
            console.log("I can sing");
        }
        var p3 = new Persion2("jack", 12);
        var p4 = new Persion2("tom", 13);
        p3.sing();//I can sing
        p4.sing();//I can sing 

        console.log(p3.sing === p4.sing);//true
    </script>
(0)

相关推荐

  • 万字长文深度剖析面向对象的javascript

    简介 本将会深入讲解面向对象在javascript中的应用,并详细介绍三种对象的生成方式:构造函数,原型链,类. 什么是对象 虽然说程序员不缺对象,随时随地都可以new一个出来,但是在程序的世界中,对 ...

  • js原型原型链

    一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object .Function 是 JS 自带的函数对象. o1 o2 o3 为普通对象, ...

  • JavaScript入门-对象(二)

    JavaScript对象(二) 本篇,主要讲了面向对象.this的指向问题,模拟继承过程 面向对象编程 什么面向对象编程? 编程,编程就是人们用计算机能懂的语言,告诉计算机自己想做的事情. 面向对象的 ...

  • JS原型链常见面试题分析

    构造函数: function Foo(name,age){ this.name=name; this.age=age; this.class='class-1'; } var f=new Foo('c ...

  • JS中数组属性和方法太多难以记忆?看这篇文章就够了

    数组一直是js中最重要的数据类型之一,其有很多属性和方法,包括常用的和不常用的,难以记忆,本文从增删改查四个基本操作入手,帮助大家更快记忆. 一 数组的属性 1 length属性 length属性是数 ...

  • js中in关键字的使用方法

    js中in关键字的使用方法

  • (4条消息) 阐述JS中原型链及prototype和

    在开始先给出我在知乎上看到的一张图,可以帮助理解: 如果现在你还不能很好的理解这副图的意思,那请继续往下看. 一.prototype和 _proto_ 的概念 prototype是函数的一个属性(每个 ...

  • JavaScript连载22-数组中其他方法以及Math对象

    一.数组中其余的常用方法 包括map,filter,every,some方法,我们分别进行举例 //map定义一个函数用来遍历原来老的数组 var arr = [10,20,5,1000,50]; v ...

  • js中的Audio 对象

    Audio 对象是 HTML5 中的新对象.Audio 对象表示 HTML <audio> 元素.Audio 对象属性属性描述audioTracks返回表示可用音频轨道的 AudioTra ...

  • JS中的history对象

    JS中的history对象 分类: History 对象 window.history指向History对象,它表示当前窗口的浏览历史. History对象在web前端开发保存了当前窗口访问过的所有页 ...

  • Springboot动态生成一个项目中没有的类(class对象)

    这两天新接到一个需求,是这样.从页面上文本写一个拦截器,然后上传这个拦截器的源码,生成对象并调用对象的方法. 我当时的反应就是很懵逼的 ...这个操作也太骚了吧 年前写了个用groovy来执行,但是会 ...

  • 细说肝癌的3中常见治疗方法及优缺点

    肝癌这种疾病是比较常见的,主要是发生在肝脏地方是比较严重的一种癌症,得了肝癌的人就会出现身体逐渐消瘦,而且身上没力气,腹痛或者腹胀,另外在肝脏上有可能会出现包块等这些现象. 肝癌的医学定义 肝癌即肝脏 ...

  • 新版高中数学必修二习题11——平面几何中的向量方法(无解析)

    新版高中数学必修二习题11——平面几何中的向量方法(无解析)