Javascript中function即为类,在function内部用this设置类的public成员变量与方法,例如:

[javascript] view plaincopy

  1. function myclass(name){
  2.     var str = "private string";    //private field
  3.     function privatefn(){      //private method         alert(str);
  4.     };
  5.     this.name = name;
  6.     this.pubfn = function(){
  7.         privatefn();      //call private method
  8.         alert("myclass.pubfn");
  9.     }
  10. }

使用时用new创建对象:

[javascript] view plaincopy
  1. var obj = new myclass("123");
  2. var name = obj.name;    //access public field
  3. obj.pubfn();        //call public method

上述是Javascript类最普通的写法,实际应用得较少,用得最多的是写成静态类的形式,Javascript的静态类有两种写法:

1. 类似Json对象的写法

[javascript] view plaincopy
  1. var myclass = {
  2.     name : "123",
  3.     pubfn : function(){
  4.         alert("pubfn1 is called");
  5.     }
  6. };

调用形式:myclass.name, myclass.pubfn()

这种写法使类的成员的访问权限均为public。

2. 匿名函数的写法

[javascript] view plaincopy
  1. var myclass = function(){
  2.     var name = "123";        //private field
  3.     var privatefn = function(){        //private method
  4.         alert(name);
  5.     }
  6.     return{                 //return public field and method
  7.         Name: "hello " + name,    //public field
  8.         pubfn : function(){
  9.             privatefn();                //call private method
  10.             alert("this is a returned function"); //public method
  11.         }
  12.     }
  13. }();

这种写法的好处是可以将私有和共有的成员方法和变量分开,实际应用中可将复杂的逻辑写的私有方法中,而return一个公用的接口调用私有方法。

调用形式:myclass.Name, myclass.pubfn()

注意类结尾处的小括号,它的作用是创建对象,去除小括号的话,则调用形式为:myclass().Name, myclass().pubfn()。

Javascript类的写法相关推荐

  1. JavaScript类的几种写法

    我们常用的有以下几种方法来用JavaScript写一个"类": 1. 构造函数(public属性和方法) 1: function Person(iName, iAge){ 2: t ...

  2. java流的写法_java IO-过滤流类的写法

    package test2; import java.io.FilterOutputStream; import java.io.IOException; import java.io.OutputS ...

  3. 深入理解JavaScript类数组

    起因 写这篇博客的起因,是我在知乎上回答一个问题时,说自己在学前端时把<JavaScript高级程序设计>看了好几遍. 于是在评论区中,出现了如下的对话: 天啦噜,这话说的,宝宝感觉到的, ...

  4. 【Infragistics教程】在javascript类中添加静态成员属性

    2019独角兽企业重金招聘Python工程师标准>>> [下载Infragistics Ultimate最新版本] 在一个javascript类中创建一个属性的需求,它需要被所有对象 ...

  5. JavaScript OOP(2)定义JavaScript类

    JavaScript OOP(2)定义JavaScript类 5.1.7 定义类的方式(工厂方式.构造函数.原型方式.混合方式) 在面向对象的开发中,类被认为是对象的模板.在JavaScript中,可 ...

  6. Hibernate中Entity实体类的写法

    记录下一个Entity类的写法,方便以后查阅: 1 package com.bupt.auth.entity; 2 3 import java.util.Date; 4 5 import javax. ...

  7. html5判断text文本是数字,JavaScript常用判断写法大全

    js验证表单大全,用JS控制表单提交,具体内容如下所示: 1. 长度限制 function test() { if(document.a.b.value.length>50) { alert(& ...

  8. JavaScript学习总结(十三)——极简主义法编写JavaScript类

    前两天在网上无意中发现了一篇使用极简主义法定义JavaScript类的文章,原文链接,这个所谓的"极简主义法"我还是第一次听说,是荷兰程序员Gabor de Mooij提出来的,这 ...

  9. php mysql 写法_php 类的写法

    php 类的写法//Db.class.php class Db { private $_dblink; public $result; public function __construct($hos ...

最新文章

  1. 新人python2和python3的区别_未明学院:Python2与Python3的主要区别
  2. php sql server配置文件路径,云服务器初始化 第六章:更改MySQL数据文件存放路径...
  3. 通信系统设计与python的书_腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?...
  4. 移动设备页面高度不足时min-height 的尴尬处理
  5. Debian11镜像更新为阿里巴巴开源镜像站镜像,切换root用户,解决用户名不在sudoers文件中此事将被报告,Debian11 文件夹对话框、火狐浏览器、命令终端等没有最大化和最小化
  6. django 1.8 官方文档翻译: 14-4-1 重定向应用
  7. SAP License:SAP MM中的几个概念
  8. 动手学习数据分析(三)——数据重构
  9. linux开发读取外部存储,Android 获取外接储存的设备路径(如挂载的U盘),android挂载...
  10. c语言反三角函数有哪些,反三角函数公式有哪些?
  11. CSS—内联样式(行内样式)、内部样式、外部样式、选择器
  12. 《东周列国志》第六十五回 弑齐光崔庆专权 纳卫衎宁喜擅政
  13. 【UE4 C++】角色拾取、替换武器(上)
  14. 煤矸石无线测温系统项目背景
  15. 【计算机史】早期人类的重要计算工具科普
  16. apache安装完成后,语法检查一直报错,哭唧唧T ^ T
  17. 微信活码系统程序源码
  18. 电脑只有一个c盘怎么办?看我怎么一招解决!
  19. 一级建造师考试备考顺序
  20. 缺省(默认)端口参数

热门文章

  1. 1120. Friend Numbers (20)
  2. Systemd 入门教程:实战篇
  3. pfsense软路由防火墙(安装过程、L2tp配置)
  4. nova ERROR (ClientException): 解决方法
  5. 结合MDN的代码手写bind
  6. Android 仿微信朋友圈添加图片
  7. java成员变量和局部变量的初始化和内存中的运行机制
  8. 【原创】分布式之缓存击穿 【原创】自己动手实现静态资源服务器 【原创】自己动手实现JDK动态代理...
  9. 《Python语言程序设计》——2.10 增强型赋值运算符
  10. ntfs for Mac无法填写序列号怎么解决