公共静态成员
在javascript中并没有特殊语法来表示静态成员。但是可以通过使用构造函数向其添加属性这种方式。

//构造函数
var Gadget = function(){}; //静态方法
Gadget.isShiny = function(){
  return 'you bet';
} //向该原型添加一个普通方法
Gadget.prototype.setPrice = function(price){
  this.price = price;
}
//调用静态方法
console.log( Gadget.isShiny() ); //输出'you bet' //创建一个实例并调用其方法
var iphone = new Gadget();
iphone.setPrice(500); //试图调用构造函数静态方法
iphone.isShiny(); //报错 以上代码可以看错,试图以一个实例方法调用构造函数的静态方法会报错,所以我们需要做一些改动,代码如下: //构造函数
var Gadget = function(price){
  this.price = price;
}; //静态方法
Gadget.isShiny = function(){   var msg = 'you bet';
  //只有实例才会执行
  if( this instanceof Gadget ){
    msg += ', it costs $' + this.price + '!';
  }
  return msg;
} //向该原型添加一个普通方法
Gadget.prototype.isShiny = function(){
  return Gadget.isShiny.call(this);
} //静态方法调用
console.log( Gadget.isShiny() ); //输出:'you bet' //测试实例,非静态调用
var a = new Gadget(499.99);
console.log( a.isShiny() ); //输出:'you bet, it costs $499.99!'

  

javascript公有静态成员的更多相关文章

  1. 关于javascript中静态成员和实例成员的详细解释

    关于javascript中静态成员和实例成员的详细解释  在我们了解什么是静态成员和实例成员之前,我们首先来了解一下什么是实例? 实例就是由构造函数创建出来的对象. 例如案例中 p 就是实例: fun ...

  2. JavaScript 公有 私有 静态属性和方法

    1.公有属性和公有方法 这里的 name  age  都是参数传递进去 可以在外面直接实例化调用. 2.私有属性和方法 私有的只能在函数内部使用 作用域的原因 3.静态属性和静态方法 这里我首先 创建 ...

  3. javascript私有静态成员

    就私有静态成员而言,指的是成员具有如下属性:1.以同一个构造函数创建的所有对象共享该成员.2.构造函数外部不可访问该成员. //构造函数 var Gadget = (function(){ //静态变 ...

  4. JavaScript中的静态成员

    静态:共享 一.公有静态成员(作为函数的属性即可): var Gadget = function(price) { this.price = price; } Gadget.isShiny = fun ...

  5. JavaScript基础对象创建模式之静态成员(027)

    在支持“类”的面向对象语言中,静态成员指的是那些所有实例对象共有的类成员.静态成员实际是是“类”的成员,而非“对象”的成员.所以如果 MathUtils类中有个叫 max()的静态成员方法,那么调用这 ...

  6. JavaScript 面向对象程序设计(下)——继承与多态 【转】

    JavaScript 面向对象程序设计(下)--继承与多态 前面我们讨论了如何在 JavaScript 语言中实现对私有实例成员.公有实例成员.私有静态成员.公有静态成员和静态类的封装.这次我们来讨论 ...

  7. 《JavaScript模式》第5章 对象创建模式

    @by Ruth92(转载请注明出处) 第5章:对象创建模式 JavaScript 是一种简洁明了的语言,并没有其他语言中经常使用的一些特殊语法特征,如 命名空间.模块.包.私有属性 以及 静态成员 ...

  8. 【读书笔记】读《JavaScript模式》 - 对象创建模式

    JavaScript是一种简洁明了的语言,其中并没有在其他语言中经常使用的一些特殊语法特征,比如命名空间(namespace).模块(module).包(package).私有属性(private p ...

  9. 《Javascript模式》之对象创建模式读书笔记

    引言: 在javascript中创建对象是很容易的,可以使用对象字面量或者构造函数或者object.creat.在接下来的介绍中,我们将越过这些方法去寻求一些其他的对象创建模式. 我们知道js是一种简 ...

随机推荐

  1. Monkey基本使用

    什么是 Monkey Monkey 是一个 Android 自动化测试小工具.主要用于Android 的压力测试, 主要目的就是为了测试app 是否会Crash. Monkey 特点 顾名思义,Mon ...

  2. unity音量设置(同时设置到多个物体上)——引伸语言设置

    在游戏中游戏设置是一个很重要的功能,但是比如语言设置和音量设置分散在很多个物体的组件上,如果每个对应的物体都放到一个链表里,会导致程序雍总难堪,使用事件调用是最好的方式 音量存储类 SoundMana ...

  3. Azkaban集群部署

    一.部署模式 solo-server模式  (使用内置h2存储元数据): two-server模式 (1个webServer,1个execServer在同一服务器上,使用mysql存储元数据): mu ...

  4. Flink standalone模式作业执行流程

    宏观流程如下图: client端 生成StreamGraph env.addSource(new SocketTextStreamFunction(...)) .flatMap(new FlatMap ...

  5. yocto-sumo源码解析(五): bitbake/lib/bb/main.py

    续前面分析,就该对bitbake_main()这个函数进行分析了,这个函数位于bitbake/lib/bb/main.py. 1. 检测主机操作系统是否为linux并且/dev/shm是否存在,pyt ...

  6. PAT甲题题解-1095. Cars on Campus(30)-(map+树状数组,或者模拟)

    题意:给出n个车辆进出校园的记录,以及k个时间点,让你回答每个时间点校园内的车辆数,最后输出在校园内停留的总时间最长的车牌号和停留时间,如果不止一个,车牌号按字典序输出. 几个注意点: 1.如果一个车 ...

  7. 【Alpha】功能规格说明书

    更新说明:从用户需求分析中剥离有关用户场景分析部分,加入功能规格说明书. Github地址:https://github.com/buaase/Phylab-Web/blob/master/docs/ ...

  8. Linux 系统目录

    / 根目录 /bin 存放必要的命令 /boot 存放内核以及启动所需的文件等 /dev 存放设备文件 /etc 存放系统的配置文件 /home 用户文件的主目录,用户数据存放在其主目录中 /lib ...

  9. 『编程题全队』Alpha 阶段冲刺博客Day6

    1.每日站立式会议 1.会议照片 2.昨天已完成的工作统计 孙志威: 1.添加JSON处理模块 2.添加了团队看板中的添加团队任务功能 3.添加了团队看板中的添加按钮 孙慧君: 1.个人任务框UI的设 ...

  10. ejabberd与XMPP

    ejabberd支持XMPP协议. worktile用ejabberd来做了实时消息推送: https://worktile.com/tech/basic/worktile-real-time-not ...