继续前天关于js object的阅读感想
前文URL:http://numberwen.iteye.com/admin/blogs/296983
这一次读到了关于js的object继承,因为js中没有很强的继承体系,它主要是通过重写object的extend方法,将父类的prototype成员全部加进到子类的prototype域中,而不同于直接修改prototype链对其他的object产生影响,作用和java中的继承基本一样
以下是按我自己理解所写的代码,希望各位看官能够给些意见,欢迎拍砖
//js中类的继承实现 之 Class创建对像方法改进和领悟 ------start
//重写object的extend方法,进行类的继承
//将soruce父类的所有prototype成员增加到子类des里,造成的后果是子类和父类的prototype,子类不能影响到
//父类的prototype属性,子类可以重写父类的方法和属性,这点完全和java继承后的效果相同
Object.extend = function(des , soruce) {
for(var prototype in soruce) {
des[prototype] = soruce[prototype];
}
return des;
}
//以这种方式创建的对像,给我的感觉有点像java中的抽像类,设计了一个必须要俾实现的抽像方法,以产生做为新子类的构造器
var Class = {
create : function(){//声明时调用,如var person = Class.create();
return function() {//new时调用,如var p= new person();中的person()构造器实现委托给这个方法实现
this.initialize.apply(this,arguments);
}
}
}
var person = Class.create();
//通过继承,覆盖抽像父类Class的initialize方法,进行构造器实现
Object.extend(person.prototype,{
initialize : function() {
this.name = "帅哥!";
}
});
//当进行new时,实际上是创建了一个新object,然后就直接将构造器的实现委托到执行重写后的initialize的方法实现
var p = new person();
alert(p.name);
//js中类的继承实现 之 Class创建对像方法改进和领悟 ------end
//js中类的继承简单实现--------- start
function A(){
this.name = '我是啊杰!';
}
A.prototype = {
say : function() {
alert(this.name);
}
}
function B() {
this.name = "我是老味凯!";
}
//将A的prototype成员全部加进到B的prototype域里
Object.extend(B.prototype,A.prototype);
//增加say方法进B的prototype域里,如果域中有相同的方法,则覆盖
Object.extend(B.prototype,{say : function() {
alert("我唔讲野!");
}});
var b = new B();
var a = new A();
b.say();
a.say();
//js中类的继承简单实现 --------end
分享到:
相关推荐
Part IV is a reference for client-side JavaScript, covering legacy web browser APIs, the standard Level 2 DOM API, and emerging standards such as the XMLHttpRequest object and the <canvas> tag. ...
本人在带学生使用EXT框架时,我发现学生阅读Ext的sample代码有问题,特别是对JavaScript的面向对象编程的书写方式不熟悉,于是,写了四个sample来说明它现代JS编程的对类的定义方式、类继承的方式,以及怎样发展到...
javascript中除了本身的内置对象,如以下我们所熟悉的对象: •Array •Date •Math •String •RegExp •…… 各个对象都有自己的属性及方法,比如我们经常使用属性及方法 属性:stringObject.length; arrayObject....
熟悉JavaScript语言构造的基础知识以及面向对象的编程及其应用程序。 学习使用Node.js在JavaScript中构建可扩展的服务器应用程序 以三种编程语言生成实例:Python,JavaScript和C# 结合使用访问修饰符,前缀,...
引用类型是JavaScript中很重要的内容。引用类型是一种数据结构,用于将数据和功能组织在一起。它描述的是一类对象所具有的属性和方法。...至少在一些相关招聘职位要求上你可以看到“熟悉JavaScript优
Vue2.x响应式简单讲解及示例 一、回顾Vue响应式用法 vue响应式,... vue内部主要是通过数据劫持和观察者模式实现的 数据劫持: vue2.x内部使用Object.defineProperty https://developer.mozilla.org/zh-CN/
JSON(JavaScript Object Notation),是一种轻量级的基于文本且独立于语言的数据交换格式。它源于ECMAScript程序语言标准-第3版(ECMA-262 3rd Edition - December 1999)的子集,定义了便于表示结构化数据的一套...
如果您熟悉 Linq-to-Objects 并且喜欢 Linq,那么这里是一个很好的起点。 TinyLinqJs 的一大优势是,顾名思义,在缩小版本中,它的大小仅为 9 kB。 如果您可以将 Linq 的强大功能应用到您的 JavaScript 中,这将是...
FileSystemObject (FSO) 对象模型允许您使用熟悉的 object.method 语法以及一系列属性、方法和事件来处理文件夹和文件。 脚本 Encoder 是一种简单的命令行工具,它使脚本设计者能够对自己的最终脚本进行编码,这样 ...
由于才疏学浅,我不得不将《Javascript 高级程序设计》中的部分内容摘抄过来,这些同时也算是我的读书笔记吧。由于 Javascript 面向对象机制...下面的代码可能看起来会非常的熟悉: 代码如下: var oCar = new Object
所以agruments对象对于javascript程序员来说是必需熟悉的。所有的函数都有属于自己的一个arguments对象,它包括了函所要调用的参数。他不是一个数组,如果用typeof arguments,返回的是’object’。虽然我们可以用...
JavaScript 建立在一系列基本单元之上。你应该对其中的一些已经很熟悉了,比如字符串和数字: var greet = "Hello"; var year = 89; 字符串和数字是该语言所谓“原语”的一部分。完整清单是: String Number ...
前端面试题知识点总结 一、JavaScript基础 1. 手写Object.create思路:将...2.熟悉Promise的使用方法和实现原理。 3.练习手写代码,掌握手写代码的方法和思路。 4.多研究、多练习,掌握更多的前端开发知识和技能。
它的类型注释API受到 , , 和,使其具有熟悉且易于理解的API。 但是Superstruct旨在在运行时验证数据,因此它会为您或您的最终用户抛出(或返回)详细的运行时错误。 这在接受REST或GraphQL API中的任意输入之类的...
类C语言的语法不外乎if、while、for、函数、算术运算等,面向对象的语言再加上object。 语法只是语言设计者预先做的一套规则,不同语言语法不尽相同,但都有一些共通点,对于熟悉一两门编程语言的人,学其他的编程...
现总结一下Javascript创建类和对象的几种方法: 1、原始的创建方法: [removed] var person = new Object(); person.name="Amy"; person.sex="Woman"; person.show=function(){ [removed]("name is: "+this....
javascript 继承 , 老生长谈的东西, 大家应该都很熟悉了, 平时工作基本不会直接使用, 这段时间不忙, 所以补习了下相关基础知识 ,自己动手实践, 加深理解: 基类定义如下: // base class function Animal(t)...
这个健美操练习的目的是让您熟悉我们业务领域的问题,同时让您认真思考如何编程并推动您走向更好的面向对象风格。 首先,我们将更深入地研究在本练习中您将受到约束的规则背后的推理,然后解释规则本身。 最后,您将...
360智能路由器插件开发指南 本文详细描述了基于 360 OS 的设备端...JSON:JavaScript Object Notation CGI:Common Gateway Interface API:Application Programming Interface 插件:运行于 360 智能路由器中的插件程序
内容导读: 有了 With 语句,在存取对象属性和方法时就不用重复指定参考对象,在 With 语句块中,凡是 JavaScript 不识别的属性和方法都和该语句块指定的对象有关。With 语句的语法格式如下所示: With Object { ...