zoukankan      html  css  js  c++  java
  • js学习(四)- prototype原型对象

    前言: 

    下面两行代码都是创建一个数组对象myArray:
    var myArray=[];
    //等价于
    var myArray=new Array();
    同样,下面的两段代码也都是创建一个函数myFunction:
    function myFunction(a,b){
          return a+b;
    }
    //等价于
    var myFunction=new Function("a","b","return a+b");

    所以创建一个函数的方法相当于new了一个Function,而prototype 是Function的方法体。

    prototype 对象是实现面向对象的一个重要机制。每个函数(function)其实也是一个对象,它们对应的类是“Function”,但它们身份特殊,每个函数对象都具有一个子对象prototype。即prototype表示了该函数的原型,而函数也是类,prototype就是表示了一个类的成员的集合。当通过 new来获取一个类的对象时,prototype对象的成员都会成为实例化对象的成员。
    既然prototype是一个对象,可以使用前面两节介绍的方法对其进行动态的修改,这里先给出一个简单的例子:

    //-------------------------------js代码-----------------

    function User(){
           //类成员的定义及构造函数
    }

    //-------------------------------html页面代码-------------------------------

    <script type="text/javascript" src="demo01.js"></script>
    <script type="text/javascript">
    //-----------------知识点一-----------------
    User.prototype.name ='tom';//创建User类的同时便相当于创建了一Function类的实例,

    此处之所以可以调用prototype子对象是因为:User类的创建实质上是:var myFunction=new Function("a","b","return a+b");

    ,而prototype是函数Function的子对象。


      User.prototype.say = function (){
      console.log("hello - ")
    }
    var user = new User();

    console.log(user['say']());

    </script>

  • 相关阅读:
    Spark SQL概述
    Spark编程进阶篇
    数据的读取与保存
    键值对RDD数据分区器
    Spark master的HA实战案例
    生产环境中zookeeper分布式集群部署实战案例
    Spark的RDD编程实战案例
    部署Spark历史服务器
    Spark的Standalone运行模式部署实战案例
    将开发的程序打包到正式环境中运行实战篇
  • 原文地址:https://www.cnblogs.com/kongxc/p/9055008.html
Copyright © 2011-2022 走看看