所谓类抄写,就是将所构造的对象在生产出来之前,先到父类的构造工厂里面进行一次“洗礼“,以使得子类具有父类的性质。然后,对所要构造的对象进行个性化的定制。在个性化的过程中,可以对父类强加给自己的行为和属性进行重写。籍此来在javascript中实现“继承”的功能。
这种继承机制中存在的缺点:
1. 在这种继承机制中,子类可以保存父类的信息,但是子类无法保存祖父类的信息。
2. 子类对象无法通过instanceof运算来判断自己是否是派生自某个父类。
3. 子类可以访问父类的函数和属性(甚至是被子类重写过的),但是无法访问经过父类重写过的祖父类的属性和函数。
下面通过具体示例说明:
extend=function(subclass,baseclass){
subclass.baseContructor = baseclass;
subclass.base={};
baseclass.call(subclass.base);
}
function Mouse(){};
function Animal(name){
this.name=name;
this.say=function(msg){
console.log(this.name+": "+msg)
}
this.eat=function(){
this.say("yum");
}
}
function Cat(name){
Cat.baseContructor.call(this,name);
this.eat=function(food){
if(food instanceof Mouse){
Cat.base.eat.call(this);
}
else{
this.say('yuk');
}
}
}
extend(Cat,Animal);
function Lion(name){
Lion.baseContructor.call(this,name);
}
extend(Lion,Cat);
var cat = new Cat('Cat');
var mouse = new Mouse();
cat.eat(mouse);
var lion = new Lion('Lion');
lion.eat(mouse);
console.log(lion.name);
alert(cat instanceof Cat);
在上例中Lino显然无法访问到Animal类中的eat函数,而且也不知道Cat是其父类,而且(lion instanceof Cat)返回false。
相关推荐
【标题】"Web开发抄写+默写资料"是一份针对Web开发学习的重要资源,它包含了一系列关于Web开发基础知识和技能的学习材料。这份压缩包旨在帮助初学者通过抄写和默写的方式,深入理解和掌握Web开发的核心概念和技术。 ...
这个类用于封装地址信息,包括联系人(contactor)、地址(address)、电话(phone)和邮箱(email)。类中有几个构造方法,分别用于不同场景的实例化: 1. 无参数构造方法:用于创建一个空的对象。 2. 有参数构造...
### 使用Kotlin语言实现自动抄写仪器的知识点详解 #### 一、项目概述与目标 本项目旨在通过Kotlin编程语言实现一个自动抄写仪器,该仪器能够读取传感器数据并进行相应的处理与展示。自动抄写仪器在工业监控、环境...
该系统是一个基于web的软件。该系统的客户端采用javascript和php作为平台的开发语言,...在人们繁忙的工作环境中,很多资料文件都要形成规范化的文档便于分类和存放,信息化的社会已经将以前手工抄写文档全部用电脑办公
3. **JavaScript交互**:“抄写员”可能包含JavaScript代码,用于实现动态功能,如实时预览、格式化选项、文本搜索和替换等。JavaScript与HTML和CSS一起构成了Web开发的三大核心技术。它可以通过事件监听(如点击...
"抄写媒体"可能指的是一个专注于文字记录、转录或者媒体内容复制的平台或服务。在HTML相关的背景下,我们可以理解为这个平台或许提供了将音频、视频内容转化为可读的HTML文本的服务,便于网络上的分享和搜索。HTML...
在js里类的继承一般是类抄写和原型继承混合使用,在extjs的extend里就是这两种方式混合 但考官问我,这样不是也在子类里加入了对父类函数的引用吗,(会在子类里加上superClass属性)这不是也是污染吗,怎么做更好的...
在开发bemyscribe时,选择TypeScript意味着开发者可以利用强类型系统,减少运行时错误,并在编译阶段发现问题,从而提高整体项目质量。 3. **API接口设计**:为了连接用户和抄写员,应用可能需要实现一套API接口,...
无需插件或JavaScript的GitHub Pages兼容转录模板(furigana)。 用法 从下载furigana.html文件。 将文件移到_includes文件夹。 像下面的代码一样,使用以下模板: {% include furigana . html text= "测试" ...
Vue.js 是一款非常流行的前端JavaScript框架,用于构建用户界面。Vue 3,也被称为 Vue-next,是该框架的最新版本,引入了许多优化和新特性,旨在提高开发效率和性能。本篇文章将通过“抄写”的方式,即逐行阅读和...
抄写平台-osx scribe-platform-osx模块包含一个模板 Mac OS X 应用程序,该应用程序运行 Javascript 文件并提供标准的窗口和菜单 API 以及允许描述和调用本机库的 Objective-C 和 C 桥接器。 设置 依赖项作为 git ...
当前存储库的目的是允许访问基于Dédalo发布系统的非常简单的网站示例,并说明DédaloAPI REST的用法以及如何发出请求并管理原始javascript中的记录。 并不打算提供生产文件,它们只是记住您易于学习的功能样本。 ...
有关更多信息,请参见关于的部分。 yarn build 构建生产到应用程序build文件夹。 它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 最小化构建,文件名包含哈希。 您的应用已准备好进行部署! 有关...
Hack”进行抄写" 这段描述进一步确认了网站的核心内容是关于恶意软件的,特别提到了一个名为“M. Hack”的元素。"E'una applicazione Js"表明该恶意软件的模拟是通过JavaScript实现的。JavaScript是一种常用的...
【标题】中的“Discord-Transcript”是一个工具或脚本,它允许用户获取 Discord 聊天室中指定数量的消息,并将这些消息格式化为类似抄写本的文本输出。这种功能对于记录团队讨论、会议纪要或者存档重要的聊天记录...
插件:SCRIBE Scribe插件(用于Sarah)使您可以通过Google Chrome... Scribe插件提供了使用Google公认的短语的功能,以便在第三方插件中利用Google。...独立并且完全是实验性的),并通过对笑脸形成的小脸进行动画处理.
描述中提到的“发布作业不是问题”和“您没有表现出自己解决问题的尝试”,暗示这是一个教学或学习环境中的挑战,需要学生自己去理解和解决问题,而不仅仅是抄写答案。这强调了独立思考和问题解决能力的重要性,特别...
" 这句话在日文中意味着“抄写”或“练习”,暗示这个项目是基于某个JavaScript框架的教程或书籍的实践活动。开发者可能在逐行或逐段地理解和实现书中的示例,以加深对框架原理和用法的理解。 【标签】"JavaScript...
棋盘 演示版 目标 该应用程序的目标是使国际象棋棋盘的转录更快,更容易。 特征 接受标准表示法和不区分大小写的捷克语表示法中的移动 可视化棋盘上的最后一个位置 将输入转换为PGN表示法 突出无效的举动 ...