使用JavaScript的闭包&立即执行函数模拟静态变量

var Rabbit = (function(){
    //Private static attrbutes
    var rabbitNum = 0;

    return function(myName,myFaveriteFood,myAddress){

        // Private attributes
        var name, food, address;

        // Private method
        function checkPassword(){
            console.log("password:123");
        } 

        // Privileged methods
        this.setName = function(newName){
            name = newName;
        }
        this.getName = function(){
            return name;
        }

        this.setFood = function(newFood){
            food = newFood;
        }
        this.getFood = function(){
            return food;
        }

        this.setAddress = function(newAddress){
            address = newAddress;
        }
        this.setAddress = function(){
            return address;
        }

        this.check = function(){
            checkPassword();
        }

        rabbitNum++;
        this.seeNumber = function(){
            console.log("rabbitNum="+rabbitNum);
        }

        //init
        this.setName(myName);
        this.setFood(myFaveriteFood);
        this.setAddress(myAddress);
    }

})();

// Public methods
Rabbit.prototype.sayHello = function(){
    console.log("hello, my name is " + this.getName());
}

Rabbit.prototype.checkP = function(){
    this.check();
}

// Public static methods
Rabbit.eatBreakfast = function(){
    console.log("all rabbits are eating");
}

var rabbit = new Rabbit("Emily","apple","Earth");
var rabbit2 = new Rabbit("Hellen","water melon","Earth");
rabbit.sayHello();
rabbit.seeNumber();
Rabbit.eatBreakfast();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值