Class = function(){
var subClass = function(){};
var superClass = arguments[0];
if(typeof(superClass) === "function"){
subClass = function(){
if(this.initialize){
this.initialize.call(this , arguments);
}
};
subClass.prototype = new superClass();
subClass.prototype.constructor = subClass;
}
subClass.prototype.extend = function(extendsObj){
for(var m in extendsObj){
this[m] = extendsObj[m];
}
};
return subClass;
};
SuperClass = Class();
SuperClass.prototype.extend({
a : 'superClass field a',
b : function(){
return "superClass method b";
},
c : 's'
});
SubClass = Class(SuperClass);
SubClass.prototype.extend({
a : 'subClass field a',
b : function(){
return "subClass method b";
}
});
var s = new SubClass();
alert(s.a);
alert(s.b());
alert(s.c);
分享到:
相关推荐
我最早掌握的在js中实现继承的方法是在xx学到的混合原型链和对象冒充的方法,在工作中,只要用到继承的时候,我都是用这个方法实现。它的实现简单,思路清晰:用对象冒充继承父类构造函数的属性,用原型链继承父类...
总结来说,JavaScript中的继承机制虽然没有像其他面向对象语言那样直接,但通过对象冒充、原型继承和混合继承等方式,开发者可以有效地实现代码复用和面向对象的设计。在实际应用中,应根据项目需求选择合适的继承...
首先来分析构造函数和原型链两种实现继承方式的缺陷: 构造函数(对象冒充)的主要问题是必须使用构造函数方式,且无法继承通过原型定义的方法,这不是最好的选择。不过如果使用原型链,就无法使用带参数的构造函数...
JavaScript中的构造函数继承是基于原型继承的一种实现方式,它允许一个构造函数(子类)从另一个构造函数(父类)那里继承属性和方法。在JavaScript中,每个对象都有一个[[Prototype]]内部属性,通常通过`__proto__`...
混合继承是指在对象冒充和原型链的基础上,结合构造函数和原型的方式来实现继承。利用构造函数来定义实例属性,利用原型来定义方法,结合这两种方式可以让继承更为灵活和强大。 JavaScript中的继承实现方法还有很多...
JavaScript的原型继承是通过原型对象(`__proto__`)来实现的,子类的原型对象指向父类的实例,从而实现属性和方法的继承。这种方式更符合面向对象编程的思想,但不支持多继承。 4. 混合方式: 在实际开发中,...
本文将详细介绍JavaScript中实现继承的五种方式:对象冒充、call()方法方式、apply()方法方式、原型链方式以及混合方式。 首先,对象冒充是一种通过临时借用父类构造函数来实现继承的方式。其基本思想是创建一个...
总结起来,对象冒充是一种原始的JavaScript继承实现方式,它利用`this`关键字在函数调用中的动态绑定特性,使得一个构造函数可以“冒充”为另一个构造函数的方法,从而实现属性和方法的继承。虽然这种方法有一些限制...
JavaScript是一种基于原型的动态类型语言,它没有像Java或C++那样的传统类继承机制,而是通过其他方式实现了面向对象的继承。在JavaScript中,有多种实现面向对象继承的方法,包括对象冒充、`call`/`apply`方法、...
在JavaScript中,对象是语言的核心组成部分,由于它没有传统的类机制,而是采用了基于原型的面向对象编程模型。本文将深入探讨在JavaScript中定义对象的几种常见方式,包括工厂模式、构造函数、原型以及继承。 1. ...
总结一下,JavaScript中的对象继承关系主要包括类继承(通过`call`或`apply`模拟)和原型继承(通过`prototype`属性)。类继承可直接访问父类实例属性但不继承原型,原型继承则共享父类的原型属性和方法。两者混合...
首先,我们来看混合方式的实现,这是一种常见的继承策略,结合了原型链和构造函数继承。在JavaScript中,对象的属性和方法可以通过原型链进行继承,而构造函数则用于初始化实例属性。以下是一个示例: ```...
对象的继承是面向对象编程的重要概念,JavaScript中对象的继承可以通过prototype链来实现。下面是一些常用的继承方法: 1. isPrototypeOf: isPrototypeOf用于指示对象是否存在于另一个对象的原型链中。 2. ...
在给定的代码示例中,我们看到了两种不同的尝试实现JavaScript继承的方式,一种是通过`call()`方法进行对象冒充,另一种是通过修改`prototype`属性实现原型链继承。下面我们将详细探讨这两种方式以及它们在实际代码...
JavaScript继承第1种方式:对象冒充;第2种方式:call方法;第3种方式:apply方法;第4种方式:原型链方式;第5种方式:混合方式(推荐)
2. **原型链**:JavaScript的原型链机制使得一个对象可以访问其原型对象的属性和方法,从而实现继承。例如: ```javascript Child.prototype = new Parent(); ``` 或者使用`Object.create()`: ```javascript ...
本篇将详细介绍三种常见的JavaScript继承实现方法:对象冒充、原型继承以及两者的混合使用。 1. 对象冒充: 对象冒充依赖于`this`关键字,它允许我们在构造函数中为实例创建属性和方法。我们可以将父类的构造函数...
JavaScript的对象继承是基于原型链的。每个对象都有一个内部的`[[Prototype]]`属性,通常可以通过`__proto__`或`Object.getPrototypeOf()`访问。`instanceof`操作符用于检测一个对象是否属于某个构造函数的实例。...