zoukankan      html  css  js  c++  java
  • 原型(prototype)学习笔记

    JavaScript接触有一段时间了,可是以前用的都只是皮毛。现在参加工作了,觉得写的比较多的倒是那些JS文件了,后台的很多东西都可以采用工具生成。今天就好好学习了Javascript中重要的一个知识点---prototype。下面是一些自己的笔记,和大家共享下:

    Javascript的所有function对象都有一个prototype属性,这个prototype本身又是一个object类型,因此可以给这个prototype对象添加任意的属性和方法。既然prototype是对象的原型,那么由该函数构造出来的对象应该都会具有这个原型的特征。事实上,在构造函数的prototype上定义的所有属性和方法,都可以通过其构造的对象直接访问和调用的。也就是说prototype提供了一群同类对象共享属性和方法的机制。
    比如给一个函数增加一个方法:
    <script type="text/javascript">
    function Person(name){
    this.name=name;
    };
    Person.prototype.sayHello=function(){
    alert("Hello,you are "+this.name);、//这样就可以给Person增加了一个sayHello方法;
    };
    
    var bills=new Person("BillsGates");
    bills.sayHello();
    </script>
    

      

    好了,现在大家在看下面的一段代码:

    <script type="text/javascript">
    
    function Person(name){
    this.name=name;
    };
    
    Person.prototype.sayHello=function(){
    alert("Hello,this is"+this.name);
    };
    
    function Employee(name,salary){
    Person.call(this,name);
    this.salary=salary;
    };
    Employee.prototype=new Person();
    Employee.prototype.showMoney=function(){
    alert(this.name+" "+this.salary);
    };
    
    var zhang=new Person("zhangsan");
    var li=new Employee("lisi",35435);
    
    zhang.sayHello();
    li.sayHello();
    li.showMoney();
    </script>
    
     
    

      

    其中有一段代码是这样的:Employee.prototype=new Person();刚看到这句代码的时候我真是看不明白,为什么要将一个基类的实例赋给子类的原型。看到后面才知道,这样做的目的是为了后面通过子类对象也可以直接调用基类的prototype的方法,这样就可以让子类直接访问基类定义的prototype方法了。

    prototype的一个重要应用就是原型扩展,这样就可以扩展了Javascript的功能。待叙。。。。。。

  • 相关阅读:
    STM32中GPIO的8种工作模式
    robots.txt与搜索引擎
    关于《腾讯工具类APP的千年老二》的读后感
    PCB布线的操作步骤
    c语言数据库编程ODBC
    锂电池相关结构优势特点及其保护电路解析方案
    C语言中的#与##字符的作用
    PADS中Layer的描述说明
    吃了单片机GPIO端口工作模式的大亏——关于强推挽输出和准双向口(弱上拉)的实际应用
    Protel与PADS之间相关文件的转换
  • 原文地址:https://www.cnblogs.com/zhangminghui/p/3043150.html
Copyright © 2011-2022 走看看