`
nenyalanye_1
  • 浏览: 50375 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

javascript面向对象 公有成员,私有成员,静态成员,特权方法的理解

阅读更多
首先简单介绍下javascript的对象:在javascript中对象的种类,Object,Function,还有就是内置对象如String,Array,Date等,在

javascript中内置对象都是继承自Object类。
对象的创建方式
var obj = new Object(); //传统的对象 内置对象也是这么创建的
 var obj = {}; //无类型对象


我们通常使用的函数都是Function类的实例. 即我们可以这样定义一个函数对象
var add = new Function("a","b","return a+b");

上面的函数对象等同于
function add(a,b){
  return a+b;
}

上面这些是很基本的,如果要了解更深大家可以看javascript的书籍,我就不讲了。

面说下基于函数的面向对象的 成员和方法的访问域的解释.
//构造函数

function myConstructor(message){
        //公有属性
	this.myMessage = message;
        //私有属性
	var separator = '_';
	var myOwner = this;
	//构造函数内私有方法
	function alertMessage(){
		alert(myOwner.myMessage);
	}
	alertMessage();
	//特权方法 可以访问构造函数里的私有变量
	this.appendToMessage = function(string){
	    this.myMessage += separator + string;
		alertMessage();
	}
  }

//公有方法

myConstructor.prototype.clearMessage = function(str){
   this.myMessage = "";
}

//静态成员
myConstructor.name = "jeff";

//静态方法
myConstructor.alertName = function (){
  alert(this.name)
}

var obj = new myConstructor("hello !");
obj.appendToMessage("kate");

这段代码创建了一个构造函数myConstructor,它本身也是一个Function对象的实例。我们在程序中面向对象把它看成构造函数 最后使用的是 myConstructor的实例,javascript中没有类这个概念 ,我们这时候可以把它理解为java中的类

在构造函数中
第1行定义了一个特权属性myMessage(实例对象和子类对象实例可以访问)
//创建子类
function sub(message){
    //继承 myConstructor
    myConstructor.call(this,message);
}
var subObj = new sub("jame");
alert(subObj.myMessage);

第2行定义了两个私有的属性(在私有方法和特权方法内可以访问,在原型的公有方法不能访问)
第4行定义了一个私有方法alertMessage,接着在构造函数里调用
最后定义了appendToMessage特权方法(实例对象可以访问和子类对象实例也可以访问如下)
subObj.appendToMessage(" hello");


接着定义了公有方法clearMessage是扩展了原型对象,这样的方法适用于所有new出来的实例及子类的实例

这里需要注意的是静态成员和静态方法只能当前的实例对象能访问也就是 new myConstructor()的实例对象可以访问,在子类中不允许访问.调用如下
alert(myConstructor.name); //静态成员
myConstructor.alertName(); //静态方法

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    JavaScript中的公有、私有、特权和静态成员用法分析

    在JavaScript编程语言中,公有、私有、特权和静态成员的使用是面向对象编程范式的一部分。它们各自有不同的作用域和访问方式,为对象的设计和行为提供了多样化的手段。下面,我们将详细分析这些成员的不同特点和使用...

    Javascript 构造函数,公有,私有特权和静态成员定义方法

    本文将详细解释JavaScript中构造函数中公有、私有特权成员以及静态成员的定义和使用方法。 构造函数中的成员可以被分为公有成员和私有成员。公有成员指的是那些可以被对象外部访问的属性和方法,而私有成员则是只能...

    js面向对象之公有、私有、静态属性和方法详解

    在JavaScript面向对象编程中,理解公有属性、私有属性、静态属性以及相应的方法是非常重要的。这些概念有助于我们更好地组织和封装代码,实现更高效的代码复用以及更严格的访问控制。 公有属性和公有方法 公有属性...

    Javascript面向对象编程

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

    JavaScript面向对象之私有静态变量实例分析

    JavaScript中的面向对象编程是一种用于组织和结构化代码的方式,它使得代码更易于理解和维护。...对于需要深入理解JavaScript面向对象编程的开发者来说,通过实际的例子来学习如何实现和使用私有静态变量是非常有益的。

    javaScript面向对象概论1

    JavaScript是一种基于原型(prototype-based)的面向对象编程语言,与基于静态类(class-based)的语言如Java、C++有很大区别。在JavaScript中,对象可以直接创建,无需预先声明类,而且对象的属性和方法可以在运行时...

    JavaScript面向对象基础.pdf

    ### JavaScript面向对象基础知识点 #### 一、面向对象的基本概念 面向对象编程(Object-Oriented Programming,简称 OOP)是一种编程范式,它通过模拟现实世界中的对象及其交互来组织软件架构。JavaScript 虽然是...

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

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

    Javascript类定义语法,私有成员、受保护成员、静态成员等介绍

    为了弥补这一不足,JavaScript允许我们使用类的语法糖,以支持类定义和模拟面向对象编程语言中的成员访问控制,包括私有成员、受保护成员和静态成员。 在JavaScript中,类的定义往往基于构造函数或者使用ES6引入的...

    Javascript面向对象与继承.doc

    以上就是JavaScript面向对象与继承的基本知识,包括对象创建、属性和方法的访问控制、继承机制以及相关的JavaScript特性。理解并熟练掌握这些概念对于编写高效、可维护的JavaScript代码至关重要。

    JavaScript中的面向对象介绍

    在其它面向对象语言中对象是由类的实例化而来,JavaScript是基于原型的面向对象语言,没有类的概念,对象派生自现有对象的副本对象创建对象构造函数公有、私有、特权、静态成员this、call和apply异常处理继承原型...

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

    在深入了解如何使用面向对象的技术创建高级Web应用程序之前,理解JavaScript中的对象是如何工作的至关重要。与C++或C#等语言中的对象概念不同,JavaScript中的对象更像是一个包含字符串键值对的词典。 **示例代码**...

    Javascript之面向对象--方法

    在JavaScript中,面向对象编程是一种常用的设计模式,它允许我们创建具有属性和方法的对象。...理解对象方法、私有方法、静态方法、公有方法以及特权方法的概念,有助于提升JavaScript编程的技能和效率。

    javascript面象对象编程

    JavaScript中的面向对象编程(Object-Oriented Programming, OOP)是一种设计模式,它允许开发者创建具有封装、继承和多态性的复杂...通过理解并灵活运用这些机制,开发者可以在JavaScript中构建复杂的面向对象系统。

    javascript 面向对象全新理练之原型继承

    在JavaScript中,面向对象编程主要依赖于原型继承机制。这是一种实现继承的方式,允许子类继承父类的属性和方法。以下是对原型继承的详细解释: 首先,我们要理解JavaScript的原型(Prototype)概念。每个函数在...

Global site tag (gtag.js) - Google Analytics