js中prototype用法,js中prototype的作用

  js中prototype用法,js中prototype的作用

  我们知道C#中有继承,也有类的扩展方法,但是JS世界中有类似的概念和函数实现吗?答案是肯定的。现在就让我来和大家说说这些知识吧!P

  脚本类型=文本/javascript

  //注意prototype只对这个脚本段有效。

  //prototype prototype关键字,它扩展了JS原始对象的方法

  array . prototype . max=function(){

  var i,min=this[0];

  for(I=1;我这.长度;i ) {

  if (min this[i])

  min=this[I];

  }

  返回最小值;

  };

  var myArray=new Array();

  myArray[0]=1;

  myArray[1]=3;

  myArray[2]=2;

  document . write(myarray . min());

  /脚本

  如您所见,我向数组添加了一个扩展方法,并找到了最小值min()。当我们构建一个数组对象时,它会有这个min方法,它的作用域只是当前的脚本代码段。

  下面的示例将扩展方法添加到自定义方法中。参见代码:

  脚本类型=文本/javascript

  //自定义函数(类)

  function selfFun(name) {

  this.m _ Name=name

  }

  //为自定义类添加扩展方法。

  self fun . prototype . hello=function(){

  Document.write(你好!this . m _ Name);

  };

  Var self=new selfFun(张)//通过类的框架方法给类赋值。

  自我。hello();

  /脚本

  但是上面两个实现都说明了prototype的扩展性,那么它的继承性是如何表现的呢?在实现上,上面的例子也从另一方面说明了它的继承性,即它继承了原对象的所有属性,然后派生出自己的新属性。接下来,我说一个更明显的例子。看看代码:

  脚本类型=文本/javascript

  //通过函数(类)的prototype属性继承另一个函数

  函数A() {

  这个。MethodA=function() {

  document . write( MethodA );

  }

  }

  函数B() {

  这个。MethodB=function() {

  document . write( method b );

  }

  }

  b . prototype=new A();//TestObjectB继承TestObjectA类

  var testObjectB=new B();

  testObjectB。MethodA();

  /脚本

  这个例子足以说明问题了吧?B继承A,同时B可以使用A中的所有方法和属性!

js中prototype用法,js中prototype的作用