在javascript中,子类化和继承都不是扩展一个类的唯一方式。函数是数据值,可以从一个类复制函数用于另一个类。
我们写一个借用方法,一个单独的function,在这个函数中完成
例:从一个类借用方法供另一个类使用
function borrowMethods(borrowFrom,addTo){ //参数必须是两个构造函数名
var from = bowwowForm.prototye;
var to = addTo.prototype;
for(m in from){ //循环被借用的那个构造的的原型属性
if(typeof from[m] != "function" ){ //只取方法,忽略不是方法的那些属性
count;
}
to[m] = from[m];
}
}
需要注意:js中内置类型---如Object,Array,Date,RegExp,因为没有for/in可枚举的属性,因此不能用做这一方法的参数。即这些内置类型的方法不能被借用。
另外:从原始构造中取得的方法,很有可能是针对原始构造所创建对象的,而其它类使用它没有任何意义,我们可以编写某些通用方法,放在一个类中,以使它适用于任何类。这种编程思想,就相当于java中的那种公共模块的使用。
例如:我们定义一个类,它自己没有方法及属性,全部是原型中的方法,是为了让其它类来借用而设置的。
function GenericToString(){};
GenericToString.prototype.toString=function(){
方法体;//方法体中是共用的定义,是让所有的类都能使用的动作
}
然后,我们就可以使用之前的borrowMethods()方法来借用这个类中的方法了。
分享到:
相关推荐
例如,当我们想要借用一个对象的方法时,或者想要创建一个新的方法,但保持特定的 `this` 指向。 - 在例子二中,`jone` 函数创建了一个具有 `say` 方法的对象。我们可以通过 `call`、`apply` 或 `bind` 来改变 `say...
- `@borrows` 将一个成员从另一个对象借用过来,以便在文档中显示。 - `@link` 创建链接到其他文档或者外部资源。 - `@callback` 和 `@typedef` 定义回调函数或自定义数据类型。 ### 在实际项目中的应用 在实际...
【描述】提到的是一个基于Java的开源项目,提供了完整的源代码供用户下载和使用。这意味着开发者或学习者可以深入研究项目的内部结构,理解其设计原理,甚至根据自身需求进行定制和扩展。开源项目通常意味着社区支持...
这个“asp.net仪器设备管理系统设计与实现(源代码).rar”压缩包文件包含了一个使用ASP.NET技术开发的仪器设备管理系统的完整源代码和相关文档,为深入理解ASP.NET开发提供了实践案例。 在ASP.NET中,开发者可以使用...
与 bootrap 具有同等功能的想法可能是 Web 应用程序某种“吃豆人完整性”的一个很好的动力,以及一个有用的小部件集合,供现在需要构建东西的人使用! 我应该清楚,这不是在惯用的 Elm 中重新创建引导程序的尝试:...
(2)使用Streams数据复制技术,实时将数据同步到另一个数据库供读取;(3)借助第三方软件如Golden Gate或DSG,实现实时数据复制;(4)利用Logical standby技术,创建逻辑备用数据库,保证读库只读。 2. **排它锁与读写...
在JavaScript中,`call`是一个非常重要的方法,它属于Function对象的一个原型方法,主要用于改变函数调用时的上下文(即`this`的指向)以及控制函数执行的环境。`call`方法允许我们借用或继承其他对象的方法,是实现...
其目标是通过自动化的方式,实现设备的采购、登记、借用、维护、报废等一系列流程的高效管理,以降低人工操作的繁琐和错误率,提高设备使用效率。 二、系统功能模块 1. 设备管理:包括设备信息录入、分类、编码,...
"精选"一词可能表明这是一个高质量或具有代表性的项目,而"完整源码"则意味着提供了项目的全部代码,可供学习和参考。 【描述解析】 描述中的"基于ThinkPhp框架的高校图书馆藏书借阅系统"进一步强调了系统的开发...
【Bookshare借书小程序源码】是一个开源项目,旨在打造一个公益性质的在线图书平台,其核心功能包括二手书...通过阅读和修改源码,开发者可以学习到如何设计和实现一个完整的社交类小程序,进一步提升自己的编程技能。
如果"nagashi"是一个库,那么这个入口文件可能会包含库的导出接口,供其他项目导入和使用。如果"nagashi"是一个框架,那么它可能会包含路由配置、中间件定义以及其他核心功能。 为了更好地理解"nagashi",我们需要...
Python测试资产管理系统源码是一个基于Python编程语言开发的软件项目,用于管理组织内部的各种资产,如硬件设备、软件许可证、办公用品等。这个系统通常包括功能模块,如资产登记、查询、借用、归还、报废以及报表...
"Spades: Web 扩展存储库"是一个专注于JavaScript开发的项目,主要目的是提供一个用于Web应用程序的扩展存储解决方案。这个存储库可能包含了各种工具和方法,帮助开发者更有效地管理和处理用户数据,尤其是在浏览器...
【标题】中的“精品--毕业设计-基于微信小程序的共享雨伞租借系统”表明这是一个关于软件工程领域的毕业设计项目,主要关注的是使用微信小程序来实现一个共享雨伞的租借服务。微信小程序是一种轻量级的应用开发平台...
借用分为可变借用和不可变借用,确保了同一时间内只能有一个可变借用或者多个不可变借用存在,从而避免了数据竞争问题。 - **编译时检查**:Rust的编译器会在编译阶段检查所有权和借用规则,确保不会出现诸如野指针...
《PHP教材管理系统设计》是一个针对计算机专业学生的毕业设计项目,旨在提供一个基于PHP...对于初学者而言,这是一个极好的实践平台,可以从中学习到软件工程的方法论和实际开发技巧,为未来的职业生涯奠定坚实基础。
在这个阶段,我们聚焦于“Angry Birds Stage 3”,这是一个借用愤怒小鸟游戏情境来教授编程概念的实例。描述中提到的“介绍约束”意味着我们将讨论如何在JavaScript中应用条件和限制,这对于理解程序逻辑和控制流至...
本项目是一个校园共享单车管理系统的课程设计,它以软件工程的视角,采用JSP技术实现了后台与数据库的交互,为用户提供了一套完整的共享单车预订、查询、还车等功能。 1. **JSP(JavaServer Pages)基础** JSP是...
我不想学习一个新的编辑器,并认为能够使用任何编辑器来编写 Markdown 会很方便。 我使用 Vim,但你可以使用任何你想要的编辑器。要求节点和 NPM 全局安装 Coffee NPM 包。 OS X(让浏览器页面自动启动)如何使用它...
在这个“asp.net办公系统”中,我们可以推测这是一个利用ASP.NET技术开发的企业级办公自动化系统,旨在提高工作效率,简化日常办公流程。 该办公系统可能包含了以下核心功能: 1. **用户管理**:系统可能提供用户...