prototype实例讲解说明 JS中的phototype详细知识点盘点
2014-12-07 10:07:29   来源:脚本世界   www.jb114.cn

JS中的phototype是JS中比较难理解的一个部分本文基于下面几个知识点:1 原型法设计模式在 Net中可以使用clone()来实现原型法原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行
JS中的phototype是JS中比较难理解的一个部分

 

本文基于下面几个知识点:

 

1 原型法设计模式

在.Net中可以使用clone()来实现原型法

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

 

2 javascript的方法可以分为三类:

a 类方法

b 对象方法

c 原型方法

例子:

复制代码
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);
}

 


//测试

var p1=new People("Windking");

p1.Introduce();

People.Run();

p1.IntroduceChinese(); 
复制代码

 

3 obj1.func.call(obj)方法

意思是将obj看成obj1,调用func方法

 

 

好了,下面一个一个问题解决:

 

prototype是什么含义?

 

javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用。

A.prototype = new B();

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

 

先看一个实验的例子:


复制代码
function baseClass()
{

  this.showMsg = function()
  {
     alert(
"baseClass::showMsg");   
  }
}


function extendClass()
{
}

extendClass.prototype 
= new baseClass();
var instance 
= new extendClass();
instance.showMsg(); 
// 显示baseClass::showMsg
复制代码

我们首先定义了baseClass类,然后我们要定义extentClass,但是我们打算以baseClass的一个实例为原型,来克隆的extendClass也同时包含showMsg这个对象方法。

extendClass.prototype = new baseCla

相关热词搜索:prototype

上一篇:javascript:void(0);揭秘到底是什么意思?javascript:void(0);用法详解
下一篇:js截取字符串及JS截取字符串substr 和 substring方法的区别

分享到: 收藏