prototype

来源:互联网 发布:网络造谣怎样算违法 编辑:程序博客网 时间:2024/06/18 13:02

javascript 是一种 prototype based programming 的语言, 而与我们通常的 class based programming 有很大 的区别,我列举重要的几点如下:

  1. 函数是first class object, 也就是说函数与对象具有相同的语言地位
  2. 没有类,只有对象
  3. 函数也是一种对象,所谓的函数对象
  4. 对象是按 引用(prototype) 来传递的


prototype原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展。我们称B的原型为A。原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展。我们称B的原型为A。

JS的三种方法:
function People(name){  this.name=name;  //对象方法  this.Introduce=function(){    alert("My name is "+this.name);  }}//类方法People.Run=function(){  alert("I can run");}//原型方法People.prototype.IntroduceChinese=function(){  alert("我的名字是"+this.name);}


prototype是什么含义?

 

javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用。也就是说将函数用作构造函数调用(使用new操作符调用)的时候,新创建的对象会从原型对象上继承属性和方法。

A.prototype = new B();

理解prototype不应把它和继承混淆。A的prototype为B的一个实例,可以理解A将B中的方法和属性全部克隆了一遍。A能使用B的方法和属性。这里强调的是克隆而不是继承。可以出现这种情况:A的prototype是B的实例,同时B的prototype也是A的实例。



0 0
原创粉丝点击