`
NumberWen
  • 浏览: 29498 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

重新熟悉javascript object 2

阅读更多

继续前天关于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

 

分享到:
评论

相关推荐

    JavaScript权威指南第五版【新】(犀牛书)

    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. ...

    讲解JavaScript的面向对象的编程

    本人在带学生使用EXT框架时,我发现学生阅读Ext的sample代码有问题,特别是对JavaScript的面向对象编程的书写方式不熟悉,于是,写了四个sample来说明它现代JS编程的对类的定义方式、类继承的方式,以及怎样发展到...

    javascript 学习笔记(八)javascript对象

    javascript中除了本身的内置对象,如以下我们所熟悉的对象: •Array •Date •Math •String •RegExp •…… 各个对象都有自己的属性及方法,比如我们经常使用属性及方法 属性:stringObject.length; arrayObject....

    Object-oriented-programming-for-JavaScript-developers:适用于JavaScript开发人员的面向对象编程的代码存储库

    熟悉JavaScript语言构造的基础知识以及面向对象的编程及其应用程序。 学习使用Node.js在JavaScript中构建可扩展的服务器应用程序 以三种编程语言生成实例:Python,JavaScript和C# 结合使用访问修饰符,前缀,...

    JavaScript学习笔记整理之引用类型

    引用类型是JavaScript中很重要的内容。引用类型是一种数据结构,用于将数据和功能组织在一起。它描述的是一类对象所具有的属性和方法。...至少在一些相关招聘职位要求上你可以看到“熟悉JavaScript优

    【JavaScript源代码】Vue2.x响应式简单讲解及示例.docx

    Vue2.x响应式简单讲解及示例  一、回顾Vue响应式用法 ​ vue响应式,... vue内部主要是通过数据劫持和观察者模式实现的 数据劫持: vue2.x内部使用Object.defineProperty https://developer.mozilla.org/zh-CN/

    JSON例子简介和使用

    JSON(JavaScript Object Notation),是一种轻量级的基于文本且独立于语言的数据交换格式。它源于ECMAScript程序语言标准-第3版(ECMA-262 3rd Edition - December 1999)的子集,定义了便于表示结构化数据的一套...

    TinyLinqJs:Linq-to-Objects 的 JavaScript 实现,以便将其与标准 JavaScript 数组一起使用

    如果您熟悉 Linq-to-Objects 并且喜欢 Linq,那么这里是一个很好的起点。 TinyLinqJs 的一大优势是,顾名思义,在缩小版本中,它的大小仅为 9 kB。 如果您可以将 Linq 的强大功能应用到您的 JavaScript 中,这将是...

    javascript帮助文档

    FileSystemObject (FSO) 对象模型允许您使用熟悉的 object.method 语法以及一系列属性、方法和事件来处理文件夹和文件。 脚本 Encoder 是一种简单的命令行工具,它使脚本设计者能够对自己的最终脚本进行编码,这样 ...

    Javascript 面向对象 (声明篇)

    由于才疏学浅,我不得不将《Javascript 高级程序设计》中的部分内容摘抄过来,这些同时也算是我的读书笔记吧。由于 Javascript 面向对象机制...下面的代码可能看起来会非常的熟悉: 代码如下: var oCar = new Object

    javascript内置对象arguments详解

    所以agruments对象对于javascript程序员来说是必需熟悉的。所有的函数都有属于自己的一个arguments对象,它包括了函所要调用的参数。他不是一个数组,如果用typeof arguments,返回的是’object’。虽然我们可以用...

    详解JavaScript中的强制类型转换

    JavaScript 建立在一系列基本单元之上。你应该对其中的一些已经很熟悉了,比如字符串和数字: var greet = "Hello"; var year = 89; 字符串和数字是该语言所谓“原语”的一部分。完整清单是: String Number ...

    2021前端面试题含答案下载 [完整版]pdf.pdf

    前端面试题知识点总结 一、JavaScript基础 1. 手写Object.create思路:将...2.熟悉Promise的使用方法和实现原理。 3.练习手写代码,掌握手写代码的方法和思路。 4.多研究、多练习,掌握更多的前端开发知识和技能。

    上层结构:一种简单且可组合的方式来验证JavaScript(和TypeScript)中的数据

    它的类型注释API受到 , , 和,使其具有熟悉且易于理解的API。 但是Superstruct旨在在运行时验证数据,因此它会为您或您的最终用户抛出(或返回)详细的运行时错误。 这在接受REST或GraphQL API中的任意输入之类的...

    深入探讨javascript中的数据类型

    类C语言的语法不外乎if、while、for、函数、算术运算等,面向对象的语言再加上object。 语法只是语言设计者预先做的一套规则,不同语言语法不尽相同,但都有一些共通点,对于熟悉一两门编程语言的人,学其他的编程...

    Javascript创建类和对象详解

    现总结一下Javascript创建类和对象的几种方法: 1、原始的创建方法: [removed] var person = new Object(); person.name="Amy"; person.sex="Woman"; person.show=function(){ [removed]("name is: "+this....

    JavaScript继承定义与用法实践分析

    javascript 继承 , 老生长谈的东西, 大家应该都很熟悉了, 平时工作基本不会直接使用, 这段时间不忙, 所以补习了下相关基础知识 ,自己动手实践, 加深理解: 基类定义如下: // base class function Animal(t)...

    程序员需要经常刷题吗-object-calisthenics:我们入职体验的第一天

    这个健美操练习的目的是让您熟悉我们业务领域的问题,同时让您认真思考如何编程并推动您走向更好的面向对象风格。 首先,我们将更深入地研究在本练习中您将受到约束的规则背后的推理,然后解释规则本身。 最后,您将...

    360智能路由器插件开发指南.pdf

    360智能路由器插件开发指南 本文详细描述了基于 360 OS 的设备端...JSON:JavaScript Object Notation CGI:Common Gateway Interface API:Application Programming Interface 插件:运行于 360 智能路由器中的插件程序

    javascript中with()方法的语法格式及使用

    内容导读: 有了 With 语句,在存取对象属性和方法时就不用重复指定参考对象,在 With 语句块中,凡是 JavaScript 不识别的属性和方法都和该语句块指定的对象有关。With 语句的语法格式如下所示: With Object { ...

Global site tag (gtag.js) - Google Analytics