`
孙健坤
  • 浏览: 42258 次
  • 性别: Icon_minigender_1
  • 来自: 长春
最近访客 更多访客>>
社区版块
存档分类
最新评论

极经典的JavaScript框架prototype.js中实现继承的方法

阅读更多
Object.extend = function(destination, source) {
for (var property in source) {
    destination[property] = source[property];
}
return destination;
}


Prototype 对Object类进行的扩展主要通过一个静态函数Object.extend(destination, source)实现了JavaScript中的继承。 从语义的角度, Object.extend(destination, source)方法有些不和逻辑, 因为它事实上仅仅实现了从源对象到目标对象的全息拷贝。不过你也可以这样认为:由于目标对象拥有了所有源对象所拥有的特性, 所以看上去就像目标对象继承了源对象(并加以扩展)一样。另外, Prototype对Object扩展了几个比较有用的静态方法, 所有其他的类可以通过调用这些静态方法获取支持。

JScript code
Object.extend = function(destination, source) { // 一个静态方法表示继承, 目标对象将拥有源对象的所有属性和方法
for (var property in source) {
    destination[property] = source[property];   // 利用动态语言的特性, 通过赋值动态添加属性与方法
}
return destination;   // 返回扩展后的对象
}

Object.extend(Object, { 
inspect: function(object) {   // 一个静态方法, 传入一个对象, 返回对象的字符串表示
    try {
      if (object == undefined) return 'undefined'; // 处理undefined情况
      if (object == null) return 'null';     // 处理null情况
      // 如果对象定义了inspect方法, 则调用该方法返回, 否则返回对象的toString()值
      return object.inspect ? object.inspect() : object.toString(); 
    } catch (e) {
      if (e instanceof RangeError) return '...'; // 处理异常情况
      throw e;
    }
},
keys: function(object) {     // 一个静态方法, 传入一个对象, 返回该对象中所有的属性, 构成数组返回
    var keys = [];
    for (var property in object)
      keys.push(property);     // 将每个属性压入到一个数组中
    return keys;
},
values: function(object) {   // 一个静态方法, 传入一个对象, 返回该对象中所有属性所对应的值, 构成数组返回
    var values = [];
    for (var property in object) values.push(object[property]); // 将每个属性的值压入到一个数组中
    return values;
},
clone: function(object) {    // 一个静态方法, 传入一个对象, 克隆一个新对象并返回
    return Object.extend({}, object);
}
});
分享到:
评论

相关推荐

    prototype.js

    在Web开发领域,JavaScript库和框架极大地提高了开发效率,其中Prototype.js就是一款非常流行的开源JavaScript框架。本文将深入探讨Prototype.js的核心概念、功能特性以及其在实际开发中的应用。 Prototype.js,...

    prototype.js 1.4-1.6[全]

    库中还包含了一些基本的动画效果,如`Element.fade`、`Element.slideUp`等,这些方法使得开发者能够在JavaScript中实现平滑的视觉过渡效果。 7. **版本迭代与改进** 从1.4到1.6的版本升级,Prototype.js 不断优化...

    prototype.js文件使用和讲解

    在JavaScript中,`prototype`是一个核心概念,它关乎对象的继承机制。`prototype.js`是一个开源库,旨在扩展JavaScript的基础功能,尤其是面向对象编程的支持。这个库由Sam Stephenson创建,是Prototype Library的一...

    prototype_1.7.3.js 最新版本

    《prototype_1.7.3.js:JavaScript框架的里程碑》 在JavaScript的世界里,Prototype库是一个不可或缺的重要组成部分,尤其在Web开发领域,它为开发者提供了强大的功能和便利性。Prototype_1.7.3.js是这个库的一个...

    prototype.js javaScript插件

    - **原型链**:JavaScript中的对象继承是基于原型链的。每个JavaScript对象都有一个内置的`__proto__`属性,它指向创建该对象的构造函数的原型。Prototype.js利用这一点来实现类的继承和对象的扩展。 - **扩展...

    javascript中类和继承(代码示例+prototype.js)

    本文将深入探讨JavaScript中的类和继承,并结合`prototype.js`文件中的示例进行解析。 ### 类的概念与模拟 在JavaScript中,我们通常使用函数来模拟类的行为。一个函数可以看作是一个类的定义,通过`new`关键字来...

    prototype.js框架资料

    《prototype.js框架详解》 Prototype.js是一个轻量级的JavaScript库,主要由Sam Stephenson开发,旨在简化DOM操作,提供面向对象的编程支持,并优化JavaScript的一些常见任务。它以其强大的功能和良好的性能,在Web...

    prototype 开发应用手册,笔记,prototype.js文件下载

    1. Object.extend:这是Prototype中最基本的扩展方法,用于将一个对象的属性复制到另一个对象上,实现对象的继承。例如,我们可以创建一个新对象并继承自现有对象: ```javascript var MyObject = Object.extend({}...

    prototype.js开发者手册

    Prototype.js是开源的JavaScript框架,它扩展了JavaScript的基本对象,提供了类和面向对象编程的支持,以及一系列实用的DOM操作方法,极大地简化了JavaScript的开发工作。 Prototype.js的核心知识点包括: 1. **类...

    Prototype.js(v1.6)带中文chm手册

    Prototype.js 是一个JavaScript框架,它扩展了JavaScript语言,提供了许多实用的功能,以简化JavaScript开发。CHM(Compiled HTML Help)是微软的一种帮助文件格式,通常用于软件的用户手册或技术文档,这里用于存放...

    moo.fx+moo.fx.pack+prototype.lite的js文件

    Prototype是一个广泛使用的JavaScript库,它为DOM操作提供了强大的支持,并引入了许多实用的函数,如类的继承、Ajax操作等。prototype.lite则是为了满足那些不需要完整Prototype功能,但又希望利用其部分优势的...

    prototype.js源码及PDF文档

    总结来说,《prototype.js源码及PDF文档》是JavaScript开发者的一份宝贵参考资料,它不仅提供了实际的代码示例,还有详细的理论指导,对于提升JavaScript技能和深入理解Prototype框架有极大的帮助。无论是初学者还是...

    prototype.js学习说明

    Prototype.js 是一个 JavaScript 库,它的主要目标是增强和扩展JavaScript的基本功能,使其更适合开发复杂的Web应用程序。在本文中,我们将深入探讨Prototype.js的核心概念、关键功能和改进,特别是集中在1.3.1版本...

    prototype.js 1.4版开发者手册

    Prototype.js 是一个强大的JavaScript框架,它为DOM操作、事件处理、AJAX交互等提供了便利的API,极大地提高了开发效率。手册详细介绍了这个库的功能和用法,以下是基于该手册的一些关键知识点的深入解析。 1. **...

    prototype.js 1.4版开发手册

    《prototype.js 1.4版开发手册》是针对JavaScript开发者的重要参考资料,主要聚焦于Prototype JavaScript框架的1.4版本。Prototype是一个广泛使用的开源JavaScript库,它扩展了JavaScript语言,为Web开发提供了强大...

    js框架prototype-1.6.0.3.js

    JavaScript框架是Web开发中不可或缺的一部分,它为开发者提供了一种标准化的方法来组织和编写JavaScript代码,使得代码更易于维护和扩展。Prototype是一个历史悠久且广泛使用的JavaScript框架,它为JavaScript编程...

    prototype-1.6.0.2.js.rar

    2. **Function.prototype.bind**:让函数拥有指定的上下文(this值),解决了JavaScript中this动态绑定的问题。 3. **Element**和**$$**:提供了一套强大的DOM操作接口,Element对象可以对HTML元素进行各种操作,$$...

Global site tag (gtag.js) - Google Analytics