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的功能。待叙。。。。。。

  • 相关阅读:
    The test form is only available for requests from the local machine
    64位Win7下,先安装Visual Studio,后安装IIS的设置步骤
    [转] 如何在 64 位的 Windows 7 中安裝 PLSQL DEVELOPER 8 和 Oracle 11g x64 Client
    excel对csv的转义
    js中没有引用的匿名函数调用方法
    缓存实现条件
    js对象成员的删除特性 (delete)
    js语法作用域之间的相关性
    【转】UBOOT之四:uboot.lds分析
    linux C 中的volatile使用
  • 原文地址:https://www.cnblogs.com/zhangminghui/p/3043150.html
Copyright © 2011-2022 走看看