zoukankan      html  css  js  c++  java
  • 懵懂的js原型

    说起原型,就得提起函数,js中据说是这样定义的,每个函数都有一个prototype 属性,(这个属性啊,又是个对象)。为了构造函数能复用,就引出了原型,要把共享的东西放到原型上去。例如

    //构造函数,是个人的话,应该就有年龄,性别,名字,和人应该就有的天性,吃

    function  Person(name,age,sex){

           this.name=name,

          this.age=age,

         this.sex=sex,

         this.eat=function(){

          alert('吃饭');

    }

    }

    //实例一下

    var p=new Person('dag',19,'男');

    var p1=new Person('fff',30,'女');

    p.eat();//吃饭

    p1.eat();//吃饭

    console.log(p.eat===p1.eat);//false

    以上得出结论:虽然p.eat()与p1.eat() 运行出来的结果都是一样的,但是他们的函数确实不一样的,这样对计算机内存来说就是浪费,明明可以一个人搬到的事,为啥要找俩人呢。

    由此引出原型 prototype,将共享出来的东西放到原型上

    改为 :Person.prototype.eat=function(){

              alert('吃饭');

    }

    再对比 p和p1两个对象

    p.eat();//吃饭

    p1.eat();//吃饭

    console.log(p.eat===p1.eat);//true

    说明 不管创建多少个对象,对象都是去找这个构造函数的原型上的方法。

  • 相关阅读:
    stack计算表达式的值
    stack例子
    stoi的例子
    前端 获取项目根路径的四种方式
    document.write()
    动态引入js文件
    Uncaught SyntaxError: Invalid or unexpected token
    oracle 快速备份表数据
    Tsinsen A1303. tree(伍一鸣) LCT
    VS2015--win32project配置的一些想法之cmake
  • 原文地址:https://www.cnblogs.com/daiwenru/p/6237549.html
Copyright © 2011-2022 走看看