`
nenyalanye_1
  • 浏览: 49262 次
  • 性别: 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.DOM高级程序设计》里面摘抄出来的,比较容易理解,特在此记录一下,便于入门...

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

    主要详细介绍了js面向对象之公有、私有、静态属性和方法,并附上详细的示例,非常的细致全面,这里推荐给大家,有需要的小伙伴可以参考下

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

    其中公有方法声明的部分采用的两种方式,在实际应用中一般采取一种方式就可以了,如果两种方式都要采用的话,应注意顺序,防止前面写的方法被清空或覆盖。

    javascript面象对象编程

    一、支持基础 面向对象思想中,最核心的概念之一是类。 类:对一组属性及方法的集合。 二、函数 函数定义方法 函数声明后加括号 – 创建完成后立即调用执行 ...2. 公有成员,私有成员,静态成员 3. 类的继承

    JavaScript中的面向对象介绍

    对象 创建 对象 构造函数 公有、私有、特权、静态成员 this、call和apply 异常处理 继承 原型 对象 在JavaScript,可以说everything is object,那么什么是对象?对象就是包含一组变量和函数的集合。在其它面向对象...

    javascript 面向对象全新理练之继承与多态

    前面我们讨论了如何在 JavaScript 语言中实现对私有实例成员、公有实例成员、私有静态成员、公有静态成员和静态类的封装。这次我们来讨论一下面向对象程序设计中的另外两个要素:继承与多态。

    Javascript之面向对象--方法

    本篇文章主要介绍了Javascript的面向对象,对对象方法的调用、私有方法、静态方法、公有方法、特权方法进行了一一介绍,需要的朋友可以看下

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版.part1.rar

     2.2.4 公有、私有、特权和静态成员真那么重要吗   2.2.5 对象字面量   2.3 this是什么   2.4 try{}、catch{}和异常处理   2.5 实例:你自己的调试日志   2.5.1 为什么需要JavaScript日志对象   ...

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版.part3.rar

     2.2.4 公有、私有、特权和静态成员真那么重要吗   2.2.5 对象字面量   2.3 this是什么   2.4 try{}、catch{}和异常处理   2.5 实例:你自己的调试日志   2.5.1 为什么需要JavaScript日志对象   ...

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版.part2.rar

     2.2.4 公有、私有、特权和静态成员真那么重要吗   2.2.5 对象字面量   2.3 this是什么   2.4 try{}、catch{}和异常处理   2.5 实例:你自己的调试日志   2.5.1 为什么需要JavaScript日志对象   ...

    浅谈Javascript的静态属性和原型属性

    文章给各位介绍Javascript的静态方法和原型方法一个例子,如果大家对于Javascript的静态方法和原型方法不了解可以和小编一起来看看。 一段代码,了解静态方法和实例方法: [removed] //对象构造函数 function ...

    Javascript 类与静态类的实现

    今天所要说的就是,如何在Javascript里写类与静态类,这是本人一惯用的方法,你也可以有更为方便的,也可以发发评论跟大家交流交流。 首先说说类,在一个类里我们会有以下的几个特征: 1. 公有方法 2. 私有方法 3. ...

    Javascript 类与静态类的实现(续)

    这次我们直接看例子: 代码如下: /***定义静态类***/ var StaticClass = (function(){ var Return = { Property: “Test Static Property”, //公有属性 Method: function(){ //公有方法 alert(_Field); //...

    JavaScript 对象的属性和方法4种不同的类型

    第三种类型是静态的公有类型,或者通常叫做原型属性,它的特点是每个对象实例共享唯一副本,对它的改写会相互影响。 第四种类型是类属性,它的特点是作为类型的属性而不是对象实例的属性,在没有构造对象时也能够...

    PHP和MySQL WEB开发(第4版)

    6.1 理解面向对象的概念 6.1.1 类和对象 6.1.2 多态性 6.1.3 继承 6.2 在PHP中创建类、属性和操作 6.2.1 类的结构 6.2.2 构造函数 6.2.3 析构函数 6.3 类的实例化 6.4 使用类的属性 6.5 使用private和public关键字...

    PHP和MySQL Web开发第4版pdf以及源码

    6.1 理解面向对象的概念 6.1.1 类和对象 6.1.2 多态性 6.1.3 继承 6.2 在PHP中创建类、属性和操作 6.2.1 类的结构 6.2.2 构造函数 6.2.3 析构函数 6.3 类的实例化 6.4 使用类的属性 6.5 使用private和...

Global site tag (gtag.js) - Google Analytics