javascript私有静态成员

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

//构造函数
var Gadget = (function(){
//静态变量/属性
var counter = 0,
    NewGadGet;
    NewGadget = function(){
        counter++;
    }
    NewGadget.prototype.getLastId = function(){
        return counter;
    }
    return NewGadget;
}())

var iphone = new Gadget();
console.log( iphone.getLastId() ); //输出1

var iPad = new Gadget();
console.log( iPad.getLastId() ); //输出2

var iPod = new Gadget();
console.log( iPod.getLastId() ); //输出3

  

javascript私有静态成员

时间: 2024-11-09 12:35:48

javascript私有静态成员的相关文章

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

关于javascript中静态成员和实例成员的详细解释  在我们了解什么是静态成员和实例成员之前,我们首先来了解一下什么是实例? 实例就是由构造函数创建出来的对象. 例如案例中 p 就是实例: function Person() {}//  此函数为构造函数 var p=new Person();  // p为构造函数创建出来的对象 我们在讨论静态成员和实例成员时候,把函数当成构造函数, 把创建出来的对象称之为实例.在此明白了什么是实例,下面我们就可以说什么是静态  成员和实例成员了. 首先什么

javascript 私有属性的实现和模块化创建对象

参考javascript模式 1)javascript私有属性的实现 当我们以通常的写法来写一个构造函数的时候,这个构造函数的所有方法和属性都是共有的(对外界可见的) function Person() { this.name = "haha"; this.sayName = function() { return this.name; } } var a = new Person(); console.log(a.sayName());//haha console.log(a.nam

javascript公有静态成员

公共静态成员在javascript中并没有特殊语法来表示静态成员.但是可以通过使用构造函数向其添加属性这种方式. 板栗: //构造函数 var Gadget = function(){}; //静态方法 Gadget.isShiny = function(){ return 'you bet'; } //向该原型添加一个普通方法 Gadget.prototype.setPrice = function(price){ this.price = price; } //调用静态方法 console.

javascript私有方法揭示为公有方法

揭示模式可用于将私有方法暴露为公共方法.当为了对象的运转而将所有功能放置在一个对象中以及想尽可能地保护该对象,这种揭示模式就非常有用. 板栗: var myarray; (function(){ var astr = "[object Array]", toString = Object.prototype.toString; function isArray(a){ return toString.call(a) === astr; } function indexOf(haysta

JavaScript 私有成员

Class field declarations for JavaScript(JavaScript 类的字段声明)目前已经进入了 stage-3,其中包含一项 OOP 开发者都很关注的内容:Private fields.JavaScript 一直没有私有成员并不是没有原因,所以这一提议给 JavaScript 带来了新的挑战.但同时,JavaScript 在 ES2015 发布的时候已经在考虑私有化的问题了,所以要实现私有成员也并非毫无基础. 笔者在专栏<JavaScript 全栈工程师养成记

javascript 私有方法的实现

原文地址: http://frugalcoder.us/post/2010/02/11/js-classes.aspx Classy JavaScript - Best Practices 11. February 2010 13:26 Okay, so you really want to be able to have some of your JavaScript methods to have access to a variable that is private, but maint

javascript 创建私有成员和静态私有成员

私有方法和属性 在javascript中,因为没有类的概念,所以只能通过构造函数来模拟类,假设现在需要写一个手机类,这个手机需要传入一张电话号码,然后能打电话.最简单的方式是 var Phone= function(num){ //手机号 this.num= num; //打电话 this.call = function(phone){ console.log(this.num + "正在呼叫" + phone.num); } } var p1= new Phone("130

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

在支持“类”的面向对象语言中,静态成员指的是那些所有实例对象共有的类成员.静态成员实际是是“类”的成员,而非“对象”的成员.所以如果 MathUtils类中有个叫 max()的静态成员方法,那么调用这个方法的方式应该是这样的:MathUtils.max(3, 5). 1. 公有静态成员 JavaScript里并没有“类”的实际语言表示 ,所以也就没有静态成员的语义表示.但由于构造函数本身就是个对象,如果把构造函数看成“类”,那么它的成员就是可以通过“类”名(也就是构造函数)直接访问的“静态成员”

javascript 单例模式

单例模式是设计模式里最基本也是最常用的模式之一,其特点是单体对象只存在一份实例,这样你就能确保在你的所有代码里面都使用着同样的全局资源. 在Java里面实现单例模式的方法是首先将构造函数私有化,在内部创建一个私有的静态变量保存实例,然后通过一个静态方法(一般取名为getInstance)将实例提供给外部访问.因为构造函数的私有化,所以外部无法对类进行实例化,而只能通过getInstance获取,所以由始到终只有那一个静态实例. 在Javascript里面我们同样可以借鉴这种思路. (一)使用对象