JavaScript中的公有、私有、特权和静态成员用法分析
本文实例讲述了JavaScript中的公有、私有、特权和静态成员用法。分享给大家供大家参考。具体分析如下:
下面的内容是在《JavaScript.DOM高级程序设计》里面摘抄出来的,比较容易理解,特在此记录一下,便于入门Javascript的朋友们分享一下哈。
//构造函数
function myContructor(message){
this.myMessage = message;
//私有属性
var separator = ' -';
var myOwner = this;
//私有方法
function alertMessage(){
alert(myOwner.myMessage);
}
alertMessage();
//特权方法(也是公有方法)
this.appendToMessage = function(string){
this.myMessage += separator + string;
alertMessage();
}
}
//公有方法
myContructor.prototype.clearMessage = function(string){
this.myMessage = '';
}
//静态属性
myContructor.name = 'Jankerli';
//静态方法
myContructor.alertName = function(){
alert(this.name);
}
有关公有、私有、特权和静态成员的几条规则:
1、由于私有成员和特权成员在函数的内部,因此它们会被带到函数的每个实例中(即由构造函数创建的每个实例中都会包含着同样的私有和特权成员的副本,因而实例越多占用内存也就越多)。
2、公有的原型成员是对象蓝图的一部分,适用于通过new关键字实例化的该对象的每个实例。
3、静态成员只适用于对象的一个特殊实例(这个特殊的实例就是作为Function对象实例的构造函数本身)。
希望本文所述对大家的javascript程序设计有所帮助。
相关推荐
-
Javascript面象对象成员、共享成员变量实验
1)Javascript对象成员实验: 复制代码 代码如下: var f = function d() { this.a = "a";/*这句运行后不存在f.a也不存在d.a存在一个window.a*/ var b = "b";/*局部变量*/ }; var o = { ff: function () { var a = "a"; /*局部变量*/ this.b = "b"; /*这句运行后存在o.b*/ } }; funct
-
JavaScript中的私有/静态属性介绍
•模拟块级作用域 大家都知道在JavaScript中没有块级作用域的概念,我们可以通过使用闭包来模拟实现块级作用域,看下面的示例: 复制代码 代码如下: (function () { for (var i = 0; i < 10; i++) { //Do Nothing } alert(i); //输出10 })(); 第6行可以访问到for循环块中的变量i,如果我们稍微修改以上代码,把for循环块放置在闭包中,情况就不一样了: 复制代码 代码如下: (function () { (functi
-
JavaScript 面向对象的 私有成员和公开成员
其实很简单,废话少说,看了下面的代码及注释相信你就会一目了然! 复制代码 代码如下: //声明类,就是一个方法,其实在JavaScript中,命名空间.类.成员.... 一切皆对象 MyClass =function(){ var _this=this; //私有变量 var aa="11"; //公开变量 this.bb="22"; //私有方法 function fun1(){ alert(aa); alert(_this.bb); } //私有方法 var f
-
javascript中定义私有方法说明(private method)
一度以为在javascript的世界里,所有方法都是公有的,无法真正从技术上定义一个私有方法,今天又一次发现:其实我错了! 复制代码 代码如下: var Person = function(name,sex){ this.name = name; this.sex = sex; var _privateVariable = "";//私有变量 //构造器中定义的方法,即为私有方法 function privateMethod()
-
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
其实通俗的讲类就是对象的模板,为了增强JS的OO特性,受mootoos框架启发我们可以使用一个JSON对象来描述这个对象的模板.在这个模板中我们可以模拟实现私有成员,受保护成员,静态成员. 这是一个在JS中模拟的类定义语法,代码中Class是一个自定义函数,它接受两个参数,第一个参数是类名.第二个参数是一个JSON用来一个对象的模板.在这个JSON对象中其中字段 "extend",,"initialize","static" 为一些预定义关键字,
-
Javascript 构造函数,公有,私有特权和静态成员定义方法
复制代码 代码如下: //构造函数 function myClass(message) { //公有属性 this.myMessage = message; //私有属性 var _separator = ' -'; var _myOwner = this; //私有方法 function showMessage() { alert(_myOwner.myMessage); } //特权方法(也是公有方法) this.appendToMessage = function(appendMessag
-
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
私有方法:私有方法本身是可以访问类内部的所有属性的,即私有属性和公有属性.但是私有方法是不可以在类的外部被调用. 私有方法写法: 复制代码 代码如下: function myClass () { var private_attribute = initial_value; function private_method () { } var private_method2 = function () { } } 实例showpet()就是一个私有方法 复制代码 代码如下: var pet=fun
-
JavaScript 面向对象的之私有成员和公开成员
上两节讲了 JavaScript 面向对象之命名空间 与 javascript 面向对象的JavaScript类,大家可以先看上面的再继续往下看. 其实很简单,废话少说,看了下面的代码及注释相信你就会一目了然! 复制代码 代码如下: //声明类,就是一个方法,其实在JavaScript中,命名空间.类.成员.... 一切皆对象 MyClass =function(){ var _this=this; //私有变量 var aa="11"; //公开变量 this.bb="22
-
JavaScript 模拟类机制及私有变量的方法及思路
在使用一些 Javascript 框架时,或许会看到类似的代码 复制代码 代码如下: var MyClass = new Class({ initialize: function(param, ...) { this.param = param; ... }, func1: function(...) { ... } }); var myObj = new MyClass(param); myObj.func1(...); 这是一种典型的面向对象的类机制应用,与原生的 Javascript 类机
-
JavaScript 私有成员分析
对象 JavaScript操作都是关于对象的.数组(Array)是对象,函数(Function)是对象.Object(类型)是对象.那么什么是对象呢?对象就是"名称-值"对(name-value).名称是字符串,值可以是字符串.数值.布尔值或对象(包括数组和函数).对象经常用哈希表实现,所以取值速度很快. 如果对象的一个值是函数(function),我们可以认为它是成员函数,当成员函数被调用时,this变量就会指向该对象.成员函数可以通过this变量访问对象的成员. 对象可以通过构造器
-
如何在JavaScript中实现私有属性的写类方式(一)
之前讨论过JavaScript中的写类方式.但没有讨论私有的实现.这篇看下. 我们知道JS中私有属性的实现本质就是 var + closure.如下 复制代码 代码如下: function Person(n, a){ // public this.name = n; // private var age = a; this.getName = function(){ return this.name; } this.getA
-
JavaScript中的私有成员
JavaScript是世界上是被误解得最厉害的编程语言.有些人认为它不具备"信息隐藏"的能力,因为JavaScript的对象没有私有变量和方法.这是误解.JavaScript对象可以拥有私有成员,下面我们来看看怎么做.(SharkUI.com注:JavaScript并不是真正拥有私有.公有等等OOP的特性,这篇译文中提到的这些私有.公有.特权等特性,是利用JavaScript的其他特性(参看本文的"闭包"一节)"模拟"出来的.感兴趣的话可以搜索相
随机推荐
- flex实现DataGrid高亮显示数据功能的解决方案
- javascript 强制刷新页面的实现代码
- mysql 海量数据的存储和访问解决方案
- jQuery ajax cache缓存问题
- asp.net DropDownList自定义控件,让你的分类更清晰
- 使用Thinkphp框架开发移动端接口
- CI使用Tank Auth转移数据库导致密码用户错误的解决办法
- PHP将Excel导入数据库及数据库数据导出至Excel的方法
- 浅析KJFrameForAndroid框架如何高效加载Bitmap
- 实例解析如何在Android应用中实现弹幕动画效果
- 基于Android开发支持表情的实现详解
- javascript 延迟加载技术(lazyload)简单实现
- JS代码格式化和语法着色V2
- 解决MySQL5.7安装后没有data文件夹无法登录的问题
- Java BufferedWriter BufferedReader 源码分析
- c语言中static的用法详细示例分析
- static全局变量与普通的全局变量的区别详细解析
- 又一个小巧的图片预加载类
- C#判断一天、一年已经过了百分之多少的方法
- Android自定义圆角ImageView