js 函数内部私有变量的 访问方式

本文通过实例展示了JavaScript中如何定义全局静态私有变量,并提供了不同方式来访问这些私有变量的方法,包括使用构造函数、字面量对象以及闭包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//  全局静态私有变量访问
(function(){
        var name = "李四";   // 私有变量
        function show(){
            return "is a good man";
        }

        Person = function( n ) {    //  全局静态私有变量   构造函数,可传参初始化,也可以什么都不写

            name = n;
//            this.name = n;
        }
        Person.prototype.setname = function( n ) {

            name = n ;   
            // 这么直接赋值操作时,无论new几个出来操作的都是同一内存下的私有变量
            // 但是如果加上this指针,new出来的对象操作的就是个子内存下的私有变量了


//            this.name = n;
        }
        Person.prototype.getname = function() {

            return name;
//            return this.name;
        }
    })();

    var obj1 = new Person('hehe');
    console.log( obj1.getname() );
    var obj2 = new Person('xixi');
    console.log( obj2.getname() );
    console.log( obj1.getname() );






// 字面量
var o = {
    name : "xixi",
    age : 33,
    show : function(){
        return "hehe";
    }
}

for( var key in o ) {
    console.log( o[key] );
}
console.log( o.name );
console.log(o.show() );
o.name = "heihei";
console.log( o.name );

// 1 块级作用域 + 字面量   的方式  访问私有变量 私有函数

var obj = function(){
    var name = "熊大";
    function show(){
        return "is a good bear";
    }

    return {   // 字面量对象
        get:function() {
            return name + ":" + show();
        }
    }
}();
console.log( obj.get())

// 2 块级作用域+构造函数 的方式 访问私有变量 私有函数
function FunGz(){};
var temp = function(){
    var name = "李四";
    function show(){
        return "is a good man";
    }
    var t = new FunGz();
    t.usepri = function(){
        return name + ":" + show();
    }
    return t;

}();

console.log( temp.usepri() );






                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值