`

JavaScript模拟面向对象

阅读更多
◆◆类定义和继承
//定义类,同时也是定义构造函数
function SuperClass() {
    //实例变量
    this.instanceAttr = 'instanceAttr';
    //类变量
    SuperClass.classAttr = 'classAttr';
    //实例方法
    SuperClass.prototype.instanceFn = function(){alert('instanceFn');}
    //类方法
    SuperClass.classFn = function(){alert('classFn');}
};

//定义子类
function SubClass() {
};
  
//定义继承,让SubClass继承SuperClass
SubClass.prototype = new SuperClass();

//示例
var obj = new SubClass();
obj.instanceFn();
//obj.classFn(); //不支持这样写
SuperClass.classFn();


◆◆继承父类的类方法
//定义类,同时也是定义构造函数
function SuperClass() {
    //类方法
    SuperClass.classFn = function(){alert('classFn');};
};

//定义子类
function SubClass() {
};

//定义继承,让SubClass继承SuperClass
SubClass.prototype = new SuperClass();

//将SuperClass的类方法也继承下来
for(var method in SuperClass)
{
    SubClass.prototype[method] = SuperClass[method];
}

var obj = new SubClass();
obj.classFn();


◆◆支持带参数的基类构造, js子类默认是不会执行父类的构造函数的
//定义类,同时也是定义构造函数
function SuperClass(x) {
	SuperClass.prototype.constructor = function(x) {
		this.instanceAttr = x;
	}

	//实例变量
	this.instanceAttr = 'instanceAttr';

	if (x != null) this.constructor(x);
};

//定义子类
function SubClass(x) {
	SubClass.prototype.constructor = function(x) {
		//先调用基类的构造函数
		this.superclass.constructor.call(this, x);
	}
	if (x != null) this.constructor(x);
};

//定义继承,让SubClass继承SuperClass
SubClass.prototype = new SuperClass();
SubClass.prototype.superclass = new SuperClass();

//示例
var obj1 = new SubClass();
alert(obj1.instanceAttr); //访问实例变量
var obj2 = new SubClass('new value');
alert(obj2.instanceAttr); //访问实例变量
分享到:
评论

相关推荐

    Javascript 面向对象的JavaScript进阶

    ### JavaScript面向对象进阶知识点详解 #### 8.1 面向对象编程的基本特性 在探讨面向对象的JavaScript之前,我们首先需要了解面向对象编程(Object-Oriented Programming, OOP)的基本特性:封装性、抽象性、继承...

    javascript 经典面向对象设计

    ### JavaScript经典面向对象设计 #### 标题与描述解析 标题“JavaScript经典面向对象设计”指出了本书的主要内容是关于如何使用面向对象编程(OOP)原则和技术来编写高质量、可扩展且可重用的JavaScript应用程序及...

    JavaScript面向对象编程指南

    在没有类的情况下,JavaScript使用原型式继承模拟面向对象概念。`Object.create`函数可以创建一个新的对象,该对象的原型是传入的第一个参数。 5. **构造函数、实例和`this`关键字** `this`在JavaScript中表示...

    JavaScript 面向对象编程详细讲解文档

    JavaScript是一种动态类型的脚本语言,虽然它不像Java或C#那样拥有传统的类和实例机制,但它的面向对象编程能力仍然非常强大。JavaScript的核心在于对象、原型和隐式继承,这些都是理解其面向对象特性的重要概念。 ...

    Javascript面向对象编程

    ### JavaScript面向对象编程详解 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,在Web开发领域占据着举足轻重的地位。尽管JavaScript本质上是一种基于原型的语言,但它也支持面向对象编程的一些特性,使得...

    JavaScript面向对象的支持

    JavaScript是一种广泛应用于Web开发的脚本语言,它虽然支持面向对象编程,但其面向对象的实现方式与其他传统面向对象语言(如Java或C++)有所不同。JavaScript中的面向对象特性主要体现在以下几个方面: 1. **基于...

    JavaScript面向对象编程案例

    在JavaScript中,面向对象编程并不是原生支持的,但它可以通过模拟类和对象来实现。 JavaScript的面向对象主要基于以下三个核心概念: 1. **对象**:对象是JavaScript中的基本单位,它们由属性(key-value对)和...

    javascript面向对象教程

    尽管它的名称中没有“对象”这个词,但JavaScript确实支持面向对象的编程范式。本文将深入探讨JavaScript的面向对象特性,帮助读者理解这个语言鲜为人知的一面。 首先,我们要明白JavaScript中的对象和类型系统。...

    老生常谈javascript的面向对象思想

    面向对象编程(OOP)是通过创建对象来模拟现实世界的一种编程范式。在JavaScript中,对象可以通过不同的方法创建和定义。面向对象有三大基本特性:封装、继承和多态。 封装是面向对象编程的核心思想之一,它指的是...

    Javascript面向对象基础.rar

    面向对象编程(Object-Oriented Programming,OOP)是编程中的一个重要概念,JavaScript也支持面向对象的特性,尽管它并非一种传统的面向对象语言。在这个“JavaScript面向对象基础”的资料中,我们将会探讨...

    javascript面向对象编程pdf

    JavaScript通过函数和原型链来模拟传统意义上的类和继承,从而实现了面向对象的特性。 在书中举例说明了如何通过构造器函数来创建对象,并利用原型(prototype)给对象添加方法。在JavaScript中,构造函数和原型是...

    Javascript实现面向对象技术PPT 超牛 不看后悔

    在JavaScript中实现面向对象(Object-Oriented Programming,OOP)技术,是提升代码复用性、可维护性和模块化的重要手段。这份名为“JavaScript实现面向对象技术PPT 超牛 不看后悔”的资料,显然深入探讨了这一主题...

    JavaScript面向对象编程

    在JavaScript中,面向对象编程(Object-Oriented Programming,简称OOP)是实现复杂逻辑和组织代码结构的重要方式。面向对象编程的核心概念包括类、对象、封装、继承和多态。 1. 类与对象 在面向对象编程中,类可以...

    Javascript面向对象基础

    在JavaScript中,面向对象编程(Object-Oriented Programming,OOP)是其核心概念之一,帮助开发者创建复杂、可复用和易于维护的代码结构。下面我们将详细探讨JavaScript面向对象的基础知识。 1. **对象和数据类型*...

    面向对象Javascript核心支持代码分享

    JQury框架绝对是页面开发的首选,代码短小强悍,缺点就是... Javascript做面向对象开发的时候,总是会用到很多模拟面向对象特性的方法,这些方法就构成了支撑面向对象Javascript的核心代码,以下就是部分代码,其中参考

    JavaScript面向对象实现简单工厂模式

    在JavaScript中,由于其语言特性,没有像Java那样的类,而是采用构造函数和原型链来模拟面向对象。因此,实现简单工厂模式会有些许不同。首先,我们需要定义一个构造函数,代表我们要创建的对象类型。例如,我们可以...

Global site tag (gtag.js) - Google Analytics