`

javascript类的模拟(对象、继承、私有属性、私有方法)

阅读更多

 

  • 对象
  • 在构造函(在调用函数时,若没有传递this对象,会在内部创建一个临时的this对象)数内部使用this关键字创建类的共有属性和方法,最后显示返回this对象,或者用new关键字隐式返回这个临时对象。

 

 

function Parent(name){
	this.name = name || "default"; //赋予默认值
	//return this;
}
var obj = new Parent();//var obj = Parent(); 

 

  • 继承

对象冒充,先把父构造函数变为子对象的一个方法,然后执行它,最后删除该函数

 

function Child(name,sex){
	this.self = Parent; //self指向Parent所指向的地方
	this.self(name); //初始化参数
	delete this.self; //删除self
	this.sex = sex || "M";
}
 

 

在子构造函数的内部用call()或者apply()方法传入this调用父构造函数

 

function Child(name,sex){
	Parent.call(this,name);//Parent.apply(this,new Array(name));
	this.sex=sex||"M";
}

 

 

在子构造函数声明后,把子构造函数的prototype赋值为父对象,缺点为不能传参初始化

 

function Child(name,sex){
	this.sex = sex || "M";
}
Child.prototype = new Parent();
 

 

  • 私有属性和私有方法

    利用js的闭包特性实现私有属性和私有方法

     

    分享到:
    评论

    相关推荐

      浅谈js继承的实现及公有、私有、静态方法的书写

      在JavaScript中,继承是面向对象编程的一个核心概念,它允许一个对象(子对象)继承另一个对象(父对象)的属性和方法。本文将深入探讨JavaScript中的继承实现方式以及公有、私有和静态方法的概念。 首先,我们要...

      javaScript面向对象继承方法经典实现.docx

      以下是两种经典的JavaScript面向对象继承方法的详细解释: 1. **基于原型的继承**: 这种方法是JavaScript最基础的继承方式,通过`prototype`属性实现。在提供的代码示例中,首先定义了一个`Pet`对象,它有一个...

      Javascript面向对象编程

      本文将详细介绍JavaScript中的面向对象编程概念和技术,包括类定义、对象创建、继承、封装等内容。 #### 二、类定义和对象创建 ##### 2.1 类定义 在JavaScript中,“类”这一概念并不像在Java或C#这样的强类型...

      Javascript 面向对象的JavaScript进阶

      **定义:** 继承是一种使一个类(子类)能够继承另一个类(父类)的属性和方法的机制。这有助于代码复用和结构化。 **JavaScript中的实现:** 尽管JavaScript没有传统意义上的类继承(如Java),但它支持基于原型的...

      javascript中类和继承(代码示例+prototype.js)

      通常,这样的库可能会提供更方便的方式来创建类和实现继承,比如使用类语法糖,以及提供一些额外的功能,如方法重载、私有属性等。 例如,它可能包含类似以下的代码: ```javascript (function() { function ...

      JavaScript面向对象编程指南

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

      JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法

      在本文中,我们将深入探讨JavaScript中的一些关键面向对象的概念,包括`Object类`、`静态属性`、`闭包`、`私有属性`以及`call`和`apply`方法的使用,同时还会介绍三种实现继承的方法。 首先,`Object类`是...

      JavaScript面向对象的支持

      闭包允许函数访问和修改外部环境的状态,为实现私有变量和模拟类的封装提供了可能。 6. **原型扩展与自定义**: 通过`Object.create()`方法或者直接修改`__proto__`属性,可以为对象添加新的方法或属性,实现对...

      JavaScript面向对象编程

      由于所有的JavaScript对象都继承自全局对象Object,因此,任何对象都可以调用其他对象的方法,这就实现了多态性。 5. 原型和原型链 在JavaScript中,对象都有一个特殊的内部属性[[Prototype]],通常通过__proto__或...

      javascript 经典面向对象设计

      - **继承**:继承使得一个对象可以直接使用另一个对象的属性和方法。JavaScript中的继承主要通过原型链实现。 - **多态性**:多态性是指不同对象可以响应相同的接口或消息。在JavaScript中,多态性可以通过重写方法...

      ProtectJSJavaScript中真正私有的属性和方法

      在JavaScript中,实现真正私有的属性和方法是一个挑战,因为其设计模式并不支持像其他面向对象语言(如Java或C++)那样的私有成员。然而,通过巧妙的封装和闭包,我们可以创建出类似私有性的机制。ProtectJS库正是...

      JavaScript面向对象编程案例

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

      JavaScript 模拟类机制及私有变量的方法及思路

      JavaScript模拟类机制及私有变量方法思路 在JavaScript中,原生并不支持传统的类继承和私有成员,而开发中有时需要类似的功能。于是,开发者们就发明了各种方法来模拟类机制,以及实现类似私有变量的功能。本文将...

      JAVASCRIPT-使用面向对象的技术创建高级 Web 应用程序

      我们介绍了JavaScript对象作为词典的概念、函数的重要性、构造函数与原型、闭包以及如何模拟私有属性和命名空间。这些概念和技术对于任何希望使用现代Web开发技术构建复杂应用的开发者来说都是必不可少的。随着Web...

      Javascript面向对象基础

      通过将一个对象的`__proto__`设置为另一个对象,可以实现一个对象继承另一个对象的属性和方法。另外,`Object.create()`方法也可以用来创建一个具有指定原型的新对象。 5. **闭包和作用域**: 虽然不是面向对象的...

      javascript面象对象编程

      JavaScript中的面向对象编程(Object-Oriented ...总结来说,JavaScript的面向对象编程主要依赖函数、原型和实例化来模拟类的概念。通过理解并灵活运用这些机制,开发者可以在JavaScript中构建复杂的面向对象系统。

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

      3. 封装:JavaScript中,对象的属性和方法可以通过访问控制符(如`public`、`private`、`protected`,尽管JavaScript没有严格意义上的访问修饰符)进行封装,通常使用闭包或者属性和方法的前缀来模拟实现。...

    Global site tag (gtag.js) - Google Analytics