前言:

下面两行代码都是创建一个数组对象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>

最新文章

  1. Unable to the boot Simulator ! Mac开机现“CoreTelephony Trace File Error”,
  2. Java关键字native、volatile、transient
  3. Spring声明式事务配置与使用
  4. 转:浅析基于微软SQL Server 2012 Parallel Data Warehouse的大数据解决方案
  5. CentOS用gparted实现无损调整磁盘分区大小
  6. spring bean之间的关系:继承;依赖
  7. jQuery插件-jgcharts实现Javascript制作Google Charts
  8. 在家用机上搭建 Git https 服务器
  9. CentOS,Ubuntu,Gentoo,Freebsd,RedHat,Debian的区别及选择
  10. vim列编辑
  11. Modelbuilder快速入门
  12. Nginx安装与代理
  13. [MySQL] mysql的事务隔离和幻读和死锁问题
  14. REST风格架构
  15. plugin-barcodescanner 报错
  16. 八皇后问题的Python实现和C#实现
  17. 01:jQuery的下拉选select2插件用法
  18. 问题 B: 【例9.3】求最长不下降序列(基础dp)
  19. Hibernate一对多关联关系保存时的探究
  20. ElasticSearch搜索实例含高亮显示及搜索的特殊字符过滤

热门文章

  1. 利用nginx搭建RTMP视频点播、直播、HLS服务器
  2. metaspolit 命令大全
  3. 在eclipse-oxygen-sts中,关于快捷键[CTRL + SHIFT + O]失效的问题
  4. 基于Swift语言开发微信、QQ和微博的SSO授权登录代码分析
  5. python源码安装
  6. DIOCP3 - 关于接收数据
  7. Tcpdump 的用法
  8. Android下基于SDL的位图渲染(二)理论篇
  9. eclipse Maven 使用记录 ------ 建立 webapp项目
  10. java 多线程 30: 多线程组件之 CyclicBarrier