在JavaScript中有好几种方法都可以实现继承。原型继承——使用prototype作为一种继承机制有许多优点,下面举例:
function Parent() {
var parentPrivate = "parent private data";
var that = this;
this.parentMethodForPrivate = function () {
return parentPrivate;
};
console.log("parent");
}
Parent.prototype = {
parentData: "parent data",
parentMethod: function (arg) {
return "parent method";
},
overrideMethod: function (arg) {
return arg + " overriden parent method";
}
}
function Child() {
// super constructor is not called, we have to invoke it
Parent.call(this);
console.log(this.parentData);
var that = this;
this.parentPrivate = function () {
return that.parentMethodForPrivate();
};
console.log("child");
}
//inheritance
Child.prototype = new Parent(); // parent
Child.prototype.constructor = Child;
//lets add extented functions
Child.prototype.extensionMethod = function () {
return " child’ s" + this.parentData;
};
//override inherited functions
Child.prototype.overrideMethod = function () {
//parent’s method is called
return" Invoking from child " + Parent.prototype.overrideMethod.call(this, "test");
};
var child = new Child(); // parent
// parent data
// child
console.log(child.extensionMethod()); //child’s parent data
console.log(child.parentData); //parent data
console.log(child.parentMethod()); //parent method
console.log(child.overrideMethod()); //Invoking from child test overriden parent method
console.log(child.parentPrivate()); // parent private data
console.log(child instanceof Parent); //true
console.log(child instanceof Child); //true
当访问子对象的成员时,从子对象开始找起,如果找不到则在其原型对象中搜索。如果还找不到,则在其父类对象和原型中搜索。以此类推一直搜索到Object的原型。这种层次被称之为"原型链"。下图描述了这种关系:
- 大小: 34.6 KB
分享到:
相关推荐
实例可以访问构造函数原型上的属性和方法,这就是JavaScript的继承机制。 HTML5的Canvas API提供了一个强大的绘图接口,允许开发者在网页上进行2D和3D图形绘制。在JavaScript面向对象的上下文中,我们可以创建专门...
在JavaScript中,面向对象主要通过构造函数、原型链、原型对象和闭包等机制来实现。 1. **构造函数**:构造函数在JavaScript中扮演着类的角色,它们通常用来初始化新创建的对象。我们可以通过`new`关键字调用构造...
4. **类(Class)**:ES6引入了类语法糖,使得JavaScript的面向对象更加符合传统面向对象语言的写法,但实际上,这些“类”仍然基于原型实现。 ```javascript class Person { constructor(name) { this.name = ...
JavaScript继承机制研究 ...通过深入理解JavaScript继承机制,可以更好地理解JavaScript面向对象编程机制,并提高开发效率。本文对JavaScript继承机制的研究将有助于读者更好地理解和使用JavaScript语言。
JS 面向对象经典案例 在JavaScript中,面向对象编程是非常重要的一部分。它提供了一种创建和组织代码的方式,能够让开发者更好地组织和维护代码。在本文中,我们将介绍JavaScript面向对象编程中的经典案例,包括...
JavaScript继承机制探讨及其应用 JavaScript是一门弱类型语言,具有函数式编程和面向对象编程的特点。随着近几年JavaScript生态圈的发展和成熟,项目的编码量和复杂度也在呈几何级数增长。JavaScript面向对象编程中...
总的来说,JavaScript的面向对象继承机制灵活而强大,但同时也有一些复杂性和陷阱。理解和熟练掌握这些概念对于成为JavaScript的高级开发者至关重要。在学习过程中,通过实际编写代码,创建各种继承模式,以及研究...
面向对象JavaScript教程 面向对象JavaScript是一种编程范式,它将JavaScript脚本编写转换为面向对象的思想。面向对象的JavaScript开发可以极大地提高开发效率和代码健壮性。 面向对象的JavaScript的特征包括: * ...
EXTJS的面向对象和继承机制为开发者提供了强大的工具,使代码更加模块化,易于维护和扩展。通过深入理解EXTJS的类系统、继承和事件处理,我们可以更好地利用EXTJS构建复杂且高效的Web应用。在实际项目中,熟练运用...
在探讨面向对象的JavaScript之前,我们首先需要了解面向对象编程(Object-Oriented Programming, OOP)的基本特性:封装性、抽象性、继承性和多态性。 ##### 8.1.1 封装性 **定义:** 封装性是面向对象编程的一个...
"javascript面向对象框架"这一主题涵盖了JavaScript中实现面向对象编程的框架,特别是Prototype和MooTools这两个优秀的库。 Prototype是JavaScript的一个开源库,它扩展了JavaScript的基本对象和函数,提供了强大的...
JavaScript提供了几种面向对象的机制,包括继承和封装。 ##### 4.1 封装 JavaScript中的封装主要通过闭包实现。例如,可以创建一个返回私有属性和方法的对象的函数: ```javascript function createPerson(name, ...
JavaScript的继承机制主要是通过原型链来实现的。当试图访问一个对象的属性时,如果该对象自身没有这个属性,JavaScript会查找其原型对象,如果原型对象也没有,会继续查找原型的原型,直到找到属性或者到达原型链的...
7. 继承模式:浅谈原型链继承、寄生组合继承、原型式继承等常见的JavaScript继承模式。 8. 多态实践:通过函数重载、鸭子类型等方式实现多态性。 9. 静态方法与静态属性:类中定义的静态方法和属性,不依附于实例...
随着现代Web应用程序变得越来越复杂,对JavaScript编程的要求也越来越高,特别是面向对象的编程技术。面向对象编程(OOP)是一种编程范式,它使用“对象”来设计软件。对象可以包含数据,以字段(通常称为属性或成员...
以上就是JavaScript面向对象与继承的基本知识,包括对象创建、属性和方法的访问控制、继承机制以及相关的JavaScript特性。理解并熟练掌握这些概念对于编写高效、可维护的JavaScript代码至关重要。
JavaScript是一种广泛应用于Web开发的动态编程语言,尤其以其强大的面向对象特性而闻名。面向对象编程(Object-Oriented Programming,OOP)是编程的一种范式,它基于“对象”概念,将数据和处理数据的方法封装在...
JavaScript面向对象编程是一种基于原型(Prototype)的编程范式,它是动态类型语言,允许开发者创建具有复杂特性的对象。在JavaScript中,面向对象主要通过构造函数、原型链和闭包来实现。以下是对这一主题的详细...
- **原型链**:JavaScript通过原型链实现了继承机制。每个对象都有一个`__proto__`属性,指向它的构造函数的`prototype`属性。通过这种方法,子对象可以访问父对象的方法和属性。 - **示例代码解析**: - **构造...