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

  • 相关阅读:
    C# MJPEG 客户端简单实现
    CefSharp 实现多标签页 调用ChromiumWebBrowser的SetAsPopup()后浏览页卡死,的另一种解决方案
    opencv findContours 报错解决记录
    什么叫网关
    分别实现网页播放mp3、flv、wmv、Flash,代码兼容FireFox
    ToString()和Convert.ToString()的用法区别
    asp,asp.net中关于双引号和单引号的用法
    .NET中继承和多态深入剖析(上)
    ASP.NET中不常用的另类绑定方法<%$ %>
    C#日期函数所有样式大全
  • 原文地址:https://www.cnblogs.com/zhangminghui/p/3043150.html
Copyright © 2011-2022 走看看