js私有共有成员

在小项目中对于JavaScript使用,只要写几个function就行了。但在大型项目中,尤其是在开发追求 良好的用户体验的网站中,如SNS,就会 用到大量的JavaScrpt,有时JavaScript的工作量胜过了C#,这时写一堆function,就会显得很乱,杂乱无章,甚至会出现命名冲突,管理和维 护起来都很麻烦。对于这种情况我们就需要使用面向对象的思想来开发JavaScript。那我们就这样作罢:       这节来说下JavaScript的私有成员和公开成员,虽然JavaScript没有private和public关键字,但还是那句话——作为开发人员我们要有面向对象的思想!

      其实很简单,废话少说,看了下面的代码及注释相信你就会一目了然!

 

//声明类,就是一个方法,其实在JavaScript中,命名空间、类、成员.... 一切皆对象
MyClass =function(){
var _this=this;

//私有变量
var aa="11";

//公开变量
this.bb="22";

//私有方法
function fun1(){  
  alert(aa);
  alert(_this.bb);
}

//私有方法
var fun2=function(){
  alert(aa);
  alert(_this.bb);
}

//公开方法
this.fun3=function(){   
    alert(aa);
    alert(_this.bb);
    }
}

//测试如下:
var mc=new MyClass();
mc.aa
="AA";//错误

mc.bb
="BB";//正确

mc.fun1();
//错误

mc.fun2();
//错误

mc.fun3();
//正确
复制代码

 

一言以蔽之:在类的内部

var 关键字声明的变量或方法是私有的;

function 关键字声明的方法是私有的;

this关键字声明的变量或方法是公开的。

 

以上说的都是针对于实例类而言的,而对于静态类那就更简单了,JavaScript静态类其实就是一个json对象,所以的它的所有成员都是公开的,都是对外可见的!

 
原文地址:http://www.cnblogs.com/xumingxiang/archive/2010/04/30/1725364.html

转载于:https://www.cnblogs.com/gowhy/archive/2012/01/14/2322228.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/379987.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java——IO(打印流)

1,打印字节流(PrintStream)的概述: 打印流可以很方便的将对象的toString()结果输出并且自动加上换行,而且可以使用自动刷出的模式 System.out就是一个PrintStream,其默认向控制台输出信息 2,使用方式: …

MATLAB中的正态分布检验

要对一组样本进行正态性检验,在MATLAB中,一种方法是用normplot画出样本,如果都分布在一条直线上,则表明样本来自正态分布,否则是非正态分布。 MATLAB中也提供了几种更正式的检验方法:kstest Kolmogorov-Smi…

远控免杀专题(29)-C#加载shellcode免杀-5种方式(VT免杀率8-70)

0x00 免杀能力一览表 几点说明: 1、表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。 2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全家…

kotlin 或 运算_Kotlin程序对两个数字执行算术运算

kotlin 或 运算Here, we are implementing a Kotlin program to perform various arithmetic operations on two numbers. 在这里,我们正在实现Kotlin程序,以对两个数字执行各种算术运算 。 Given two numbers a and b, we have to find addition, sub…

2012.1.15---学习笔记

最近学习实践的内容主要有:1 memcahche的安装、使用(为了减少数据库压力而采用的)2 linux下的定时任务的配置,crontab3 如何去编写可配置的php程序(加载配置文件)1 memcahche的安装、使用(为了减…

WPF界面设计技巧(2)—自定义漂亮的按钮样式

上次做了个很酷的不规则窗体,这次我们来弄点好看的按钮出来,此次将采用纯代码来设计按钮样式,不需要 Microsoft Expression Design 辅助了。 首先打开 Microsoft Visual Studio 2008 ,新建一个WPF项目,在上面随便放几个…

ropgadgets与ret2syscall技术原理

程序&#xff1a; #include <stdio.h> #include <string.h> #include <sys/types.h> #include <unistd.h> #include <sys/syscall.h> void exploit() { system("/bin/sh"); } void func() { char str[0x20]; read(0,str,0x50); } int…

uboot load address、entry point、 bootm address以及kernel运行地址的意义及联系

按各地址起作用的顺序&#xff0c;uboot引导linux内核启动涉及到以下地址&#xff1a; load address&#xff1a;entry point&#xff1a; 这两个地址是mkimage时指定的bootm address&#xff1a;bootm为uboot的一个命令&#xff0c;以此从address启动kernelkernel运行地址&…

Java——集合(Map集合的两种迭代)

一&#xff0c;Map集合的第一种迭代 Map集合的第一种迭代&#xff0c;通过get(key)方法&#xff0c;根据键去获取值 package com.wsq.map;import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set;public class Demo2_Iterator { …

如何使用两个堆栈实现队列_使用两个队列实现堆栈

如何使用两个堆栈实现队列Stack and Queue at a glance... 堆叠和排队一目了然... Stack: 堆栈&#xff1a; The stack is an ordered list where insertion and deletion are done from the same end, top. The last element that entered first is the first one to be del…

接口pk抽象类

作为开发者&#xff0c;谁从来没有陷入过周而复始地争论应该是使用接口还是抽象类&#xff1f;这是一场永无休止的争论&#xff0c;不同阵营的人总是坚定地坚持自己的立场。应当使用接口还是抽象类&#xff1f;对于初学者来说那更是满头雾水。这个问题应该考虑一下几个因素&…

汇编shr命令

右移命令 比如&#xff1a; mov eax,10 shr eax,0x2上面的命令是将eax的值右移两位&#xff0c;怎么左移呢&#xff1f;首先将eax的值转为二进制10------》1010&#xff0c;然后右移两位变成10&#xff0c;所以执行为shr命令&#xff0c;eax的值为十进制的2

iBatis入门和开发环境搭建

iBatis 的优缺点&#xff1a; 优点&#xff1a; 1、 减少代码量&#xff0c;简单&#xff1b; 2、 性能增强&#xff1b; 3、 Sql 语句与程序代码分离&#xff1b; 4、 增强了移植性&#xff1b; 缺点&#xff1a; 1、 和Hibernate 相比&#xff0c;sql 需要自己写&#x…

Python | 程序以字符串长度打印单词

Given a string and we have to split the string into words and also print the length of the each word in Python. 给定一个字符串&#xff0c;我们必须将字符串拆分为单词&#xff0c;并在Python中打印每个单词的长度。 Example: 例&#xff1a; Input:str "Hell…

Java——递归练习

#练习一&#xff1a;从键盘接收一个文件夹路径&#xff0c;统计该文件夹大小 ###分析&#xff1a; ####每句话相当与每一个要求&#xff0c;每一个要求用一个方法去实现 第一个方法 * getDir()* 第一个要求&#xff1a;从键盘接收一个文件夹路径* 1&#xff0c;创建键盘录入对…

C# 里怎样得到当前执行的函数名,当前代码行,源代码文件名。

得到函数名&#xff1a; System.Diagnostics.StackTrace st new System.Diagnostics.StackTrace(); this.Text st.GetFrame(0).ToString(); 得到代码行&#xff0c;源代码文件名&#xff1a; StackTrace st new StackTrace(new StackFrame(true)); Console…

PHP中单引号和双引号的区别

0x01 单引号 单引号里面的内容不会被解释&#xff0c;不管什么内容&#xff0c;都当做字符串处理 <?php$abc1234; $stradc$abc; echo $str;输出 0x02 双引号 双引号里面的内容会被解释&#xff0c;像一些换行&#xff08;\n)、数据元素等都会被解释 <?php$abc1234;…

Eclipse 代码提示无效的解决方法

代码提示一般有两种形势1、点提示无效经常打一个点就能调出该对象可选的方法列表。哪天不灵了&#xff0c;可以这样解决&#xff1a;window->Preferences->Java->Editor->Content Assist->Advanced 上面的选项卡Select the proposal kinds contained in the de…

getdate 日期间隔_日期getDate()方法以及JavaScript中的示例

getdate 日期间隔JavaScript Date getDate()方法 (JavaScript Date getDate() method) getDate() method is a Dates class method and it is used to get the current day of the month. getDate()方法是Date的类方法&#xff0c;用于获取当月的当前日期。 It accepts nothin…

关闭页面时执行“退出”的解决方案

在有些应用中我们需要实时的更新站点用户是否在线的状态。比如一些论坛里的在线成员实时显示&#xff0c;或基于网页的聊天、会议系统等。这种情况下&#xff0c;如果用户点击“退出”按钮或链接&#xff0c;我们将之行一系列后台操作&#xff0c;将该用户标识成off line状态&a…