`
sdh88hf
  • 浏览: 69849 次
  • 性别: Icon_minigender_1
  • 来自: 绍兴
社区版块
存档分类
最新评论

JavaScript继承小例子

    博客分类:
  • JS
 
阅读更多
权威指南第九章真心很给力,精彩啊,抽出了这个小例子
//对象复制公用方法
		function inherit(p){
			if(p == null) 
				throw TypeError();
			
			if(Object.create)
				return Object.create(p);
				
			var t = typeof p;
			
			if(t!=="object" && t!== "function") 
				throw TypeError();
			
			function f(){
			
			}
			
			f.prototype = p;
			
			return new f();
		
		}
		
		//属性继承公用方法
		function extend(o,p){
			for(prop in p){
				o[prop] = p[prop];
			}
			
			return o;
		}
		
		//
		//superclass 父类 constructor 子类构造 methods 子类方法覆盖 statics子类静态属性覆盖
		function defineSubclass(superclass,constructor,methods,statics){
			//js 继承的最关键的两句代码
			//1.子类的原型为 父类的原型示例
			constructor.prototype = inherit(superclass);
			//2.子类的构造类改回是它自己 而不是父类
			constructor.prototype.constructor = constructor;
			
			//复制方法和属性
			if(methods) extend(constructor.prototype,methods);
			if(statics) extend(constructor.prototype,statics);
			
			return constructor;
		}
		
		//Function扩展
		Function.prototype.extend = function(constructor,methods,statics){
			return defineSubclass(this,constructor,methods,statics);
		}
		
		//创建父对象
		function Set(){
			this.values = {};
			this.n = 0;
		}
		//有个私有方法
		Set.fromArr = function(){
			alert(1);
		}
		
		//开始创建子类
		var SingletSet = Set.extend(function(value){//子类构造函数
			this.value = value;
		},{
			fromArr : function(){//重写父类方法
				alert(2);
			},
			fromXml : function(){//定义新方法
				alert(3);
			}
		
		});
		
		//调用
		var a = new SingletSet("value");
		console.log(a.value);
		a.fromArr();
		a.fromXml();
分享到:
评论

相关推荐

    300个JavaScript的小例子

    3. **对象与原型链**:JavaScript采用基于原型的面向对象,对象可以包含属性和方法,理解原型链是理解JavaScript继承的关键。 4. **事件处理**:JavaScript常用于处理用户交互,如点击、鼠标移动、键盘输入等事件,...

    经典的JavaScript小例子

    这个"经典的JavaScript小例子"集合提供了一系列实用的代码片段,旨在帮助开发者理解和应用JavaScript的基本概念,同时激发创新思维,为网站增添互动性和趣味性。 首先,我们要明白JavaScript的主要功能:它可以在...

    javascript100个小例子

    "javascript100个小例子"这个资源集合了100个JavaScript编程的小实例,涵盖了各种操作和效果,非常适合初学者进行实践学习,同时也为项目开发提供了现成的代码片段。 在JavaScript的学习中,了解和掌握以下几个关键...

    Javascript 继承实现例子

    在真正的Web站点和应用程序中,几乎不可能创建名为ClassA和ClassB的类,更可能的是创建表示特定事物(如形状)的类。考虑本章开头所述的形状的例子,Polygon、Triangle和Rectangle类就构成了一组很好的探讨数据。

    javascript小例子代码

    在这个“javascript小例子代码”压缩包中,我们很可能会找到一系列便于理解和学习JavaScript基本概念、语法和常见功能的小型示例代码。 首先,让我们探讨JavaScript的基本结构。在JavaScript中,代码通常是放在`...

    javascript多种经典例子

    这个压缩包文件“javascript多种经典例子”很可能是包含了一系列的JavaScript代码示例,用于帮助学习者理解并掌握JavaScript的关键概念和实际应用。 1. **变量与数据类型**: JavaScript 支持动态数据类型,这意味...

    javascript高级代码例子

    "JavaScript高级代码例子"这个主题涵盖了JavaScript的高级特性和实践应用,旨在帮助开发者深入理解和运用这些高级技术。以下是对这些高级知识点的详细阐述: 1. **闭包(Closures)**:闭包是JavaScript中的一个...

    JavaScript继承详解.doc

    `ArrayList02`的例子展示了原型链继承,通过将父类的实例赋值给子类的`prototype`,使得子类实例可以访问父类的方法。`ArrayList02.prototype = new CollectionBase();`这一行代码就是关键,它让`ArrayList02`的...

    JavaScript继承的特性与实践应用深入详解

    这里我们将深入探讨JavaScript继承的特性以及实践应用。 首先,JavaScript的继承基于原型链。每个对象都有一个`__proto__`属性,指向创建它的构造函数的原型对象。当试图访问对象的一个属性时,JavaScript会沿着...

    JavaScript各种使用例子

    7. **原型链**:JavaScript的继承机制基于原型链,每个对象都有一个proto属性,指向其构造函数的prototype。通过原型链,子对象可以访问父对象的属性和方法。 8. **ES6新特性**:包括箭头函数、模板字符串、解构...

    JavaScript 例子(JavaScript 源码html格式)

    例子可能会涉及类的模拟和继承的概念。 10. **JavaScript库和框架**:虽然压缩包未明确提及,但学习JavaScript往往涉及到jQuery、React、Vue等流行库或框架的使用。例子可能包含这些工具的简单应用场景。 通过分析...

    javascript控件开发之继承关系

    在这个例子中,`Button`通过`Object.create(Control.prototype)`继承了`Control`的原型,并通过`Control.call(this, id)`调用了父类的构造函数。这样,`Button`实例就可以拥有`Control`的所有属性和方法,同时还能...

    JavaScript实用例子

    这个压缩包文件"JavaScript实用例子"显然包含了一系列有助于初学者理解和掌握JavaScript编程技巧的实际示例。现在,我们将深入探讨JavaScript的一些关键知识点。 1. 变量与数据类型: JavaScript支持动态数据类型...

    JavaScript继承与多继承实例分析.docx

    1. **JavaScript继承** - **原理**:JavaScript的继承主要是通过原型链(prototype chain)来实现的。每个JavaScript对象都有一个内部属性[[Prototype]],通常可以通过`__proto__`访问,或通过`Object....

    300个JavaScript小例子.rar

    本压缩包"300个JavaScript小例子.rar"包含了一系列JavaScript编程实例,旨在帮助初学者和进阶者更好地理解和掌握JavaScript的核心概念与技巧。 1. **基础语法** JavaScript的基础包括变量声明(var、let、const)...

    史上最为详细的javascript继承(推荐)

    在下面的例子中,`SubType`通过原型链继承了`SuperType`: ```javascript function SuperType() { this.name = 'super'; this.friend = []; this.property = true; } SuperType.prototype.getName = function()...

    程序天下JavaScript(所有例子).rar

    JavaScript的核心特性包括弱类型、原型继承、动态类型以及基于事件的异步处理,这些都是它区别于其他编程语言的关键点。 首先,让我们深入了解一下JavaScript的基础知识: 1. **变量和数据类型**:JavaScript是弱...

    Web设计开发常用Javascript例子

    JavaScript的对象基于原型,允许通过原型链继承属性和方法。例子可能涉及`__proto__`、`Object.create`、`prototype`以及如何实现面向对象编程。 9. **ES6新特性**: 如箭头函数、模板字符串、解构赋值、类和模块...

    javascript 继承派生

    在JavaScript中,面向对象编程是其核心特性之一,而继承和派生则是实现面向对象的重要机制。本资料集合关注的是JavaScript中的继承派生以及与之相关的`apply`和`call`方法。 **继承**是面向对象编程的关键概念,...

    javascript教程和例子

    在这个“javascript教程和例子”中,虽然教程部分可能不够深入,但是提供的例子非常实用,涵盖了日常开发中的常见场景,这对于初学者理解和掌握JavaScript的基本用法具有很高的价值。 1. **JavaScript基础**: - ...

Global site tag (gtag.js) - Google Analytics