JSt中对象的prototype属性

JSt中对象的prototype属性,是用来返回对象类型原型的引用的。我们使用prototype属性提供对象的类的一组基本功能。并且对象的新实例会"继承"赋予该对象原型的操作。但是这个prototype到底是怎么实现和被管理的呢?

     对于对象的prototype属性的说明,JScript手册上如是说:所有 JScript 内部对象都有只读 的 prototype 属性。可以向其原型中动态添加功能(属性和方法),但该对象不能被赋予不同的原型。然而,用户定义的对象可以被赋给新的原型。
     下面我们看三个经典的prototype属性的使用示例。

     1、为脚本环境内建对象添加方法:

 Array.prototype.max = function()
 {
     var i, max = this[0];
     for (i = 1; i < this.length; i++)
      {
        if (max < this[i])
         max = this[i];
      }
     return max;
 };
   2、为用户自定义类添加方法:

 function TestObject(name)
 {
     this.m_Name = name;
 }

 TestObject.prototype.ShowName = function()
 {
      alert(this.m_Name);
 };
3、更新自定义类的prototype:

 function TestObjectA()
 {
    this.MethodA = function()
     {
        alert('TestObjectA.MethodA()');
     }
 }

 function TestObjectB()
 {
    this.MethodB = function()
     {
        alert('TestObjectB.MethodB()');
     }
 }

 TestObjectB.prototype = new TestObjectA();

posted @ 2011-11-21 20:01  左正  阅读(216)  评论(0编辑  收藏  举报