权威指南第九章真心很给力,精彩啊,抽出了这个小例子
//对象复制公用方法
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();
分享到:
相关推荐
3. **对象与原型链**:JavaScript采用基于原型的面向对象,对象可以包含属性和方法,理解原型链是理解JavaScript继承的关键。 4. **事件处理**:JavaScript常用于处理用户交互,如点击、鼠标移动、键盘输入等事件,...
这个"经典的JavaScript小例子"集合提供了一系列实用的代码片段,旨在帮助开发者理解和应用JavaScript的基本概念,同时激发创新思维,为网站增添互动性和趣味性。 首先,我们要明白JavaScript的主要功能:它可以在...
"javascript100个小例子"这个资源集合了100个JavaScript编程的小实例,涵盖了各种操作和效果,非常适合初学者进行实践学习,同时也为项目开发提供了现成的代码片段。 在JavaScript的学习中,了解和掌握以下几个关键...
在真正的Web站点和应用程序中,几乎不可能创建名为ClassA和ClassB的类,更可能的是创建表示特定事物(如形状)的类。考虑本章开头所述的形状的例子,Polygon、Triangle和Rectangle类就构成了一组很好的探讨数据。
在这个“javascript小例子代码”压缩包中,我们很可能会找到一系列便于理解和学习JavaScript基本概念、语法和常见功能的小型示例代码。 首先,让我们探讨JavaScript的基本结构。在JavaScript中,代码通常是放在`...
这个压缩包文件“javascript多种经典例子”很可能是包含了一系列的JavaScript代码示例,用于帮助学习者理解并掌握JavaScript的关键概念和实际应用。 1. **变量与数据类型**: JavaScript 支持动态数据类型,这意味...
"JavaScript高级代码例子"这个主题涵盖了JavaScript的高级特性和实践应用,旨在帮助开发者深入理解和运用这些高级技术。以下是对这些高级知识点的详细阐述: 1. **闭包(Closures)**:闭包是JavaScript中的一个...
`ArrayList02`的例子展示了原型链继承,通过将父类的实例赋值给子类的`prototype`,使得子类实例可以访问父类的方法。`ArrayList02.prototype = new CollectionBase();`这一行代码就是关键,它让`ArrayList02`的...
这里我们将深入探讨JavaScript继承的特性以及实践应用。 首先,JavaScript的继承基于原型链。每个对象都有一个`__proto__`属性,指向创建它的构造函数的原型对象。当试图访问对象的一个属性时,JavaScript会沿着...
7. **原型链**:JavaScript的继承机制基于原型链,每个对象都有一个proto属性,指向其构造函数的prototype。通过原型链,子对象可以访问父对象的属性和方法。 8. **ES6新特性**:包括箭头函数、模板字符串、解构...
例子可能会涉及类的模拟和继承的概念。 10. **JavaScript库和框架**:虽然压缩包未明确提及,但学习JavaScript往往涉及到jQuery、React、Vue等流行库或框架的使用。例子可能包含这些工具的简单应用场景。 通过分析...
在这个例子中,`Button`通过`Object.create(Control.prototype)`继承了`Control`的原型,并通过`Control.call(this, id)`调用了父类的构造函数。这样,`Button`实例就可以拥有`Control`的所有属性和方法,同时还能...
这个压缩包文件"JavaScript实用例子"显然包含了一系列有助于初学者理解和掌握JavaScript编程技巧的实际示例。现在,我们将深入探讨JavaScript的一些关键知识点。 1. 变量与数据类型: JavaScript支持动态数据类型...
1. **JavaScript继承** - **原理**:JavaScript的继承主要是通过原型链(prototype chain)来实现的。每个JavaScript对象都有一个内部属性[[Prototype]],通常可以通过`__proto__`访问,或通过`Object....
本压缩包"300个JavaScript小例子.rar"包含了一系列JavaScript编程实例,旨在帮助初学者和进阶者更好地理解和掌握JavaScript的核心概念与技巧。 1. **基础语法** JavaScript的基础包括变量声明(var、let、const)...
在下面的例子中,`SubType`通过原型链继承了`SuperType`: ```javascript function SuperType() { this.name = 'super'; this.friend = []; this.property = true; } SuperType.prototype.getName = function()...
JavaScript的核心特性包括弱类型、原型继承、动态类型以及基于事件的异步处理,这些都是它区别于其他编程语言的关键点。 首先,让我们深入了解一下JavaScript的基础知识: 1. **变量和数据类型**:JavaScript是弱...
JavaScript的对象基于原型,允许通过原型链继承属性和方法。例子可能涉及`__proto__`、`Object.create`、`prototype`以及如何实现面向对象编程。 9. **ES6新特性**: 如箭头函数、模板字符串、解构赋值、类和模块...
在JavaScript中,面向对象编程是其核心特性之一,而继承和派生则是实现面向对象的重要机制。本资料集合关注的是JavaScript中的继承派生以及与之相关的`apply`和`call`方法。 **继承**是面向对象编程的关键概念,...
在这个“javascript教程和例子”中,虽然教程部分可能不够深入,但是提供的例子非常实用,涵盖了日常开发中的常见场景,这对于初学者理解和掌握JavaScript的基本用法具有很高的价值。 1. **JavaScript基础**: - ...