欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

【JS笔记】私有变量

发布时间:2025/7/14 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【JS笔记】私有变量 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1.任何函数中定义的变量都可以认为是私有变量。函数内部可以访问,外部不能访问。

可以通过闭包创建特权方法访问私有变量。

function Foo(){var n=10;this.returnN=function(){return n;}; }; var newfoo=new Foo(); console.log(newfoo.returnN())//10

2.静态私有变量的创建是在私有域中定义私有变量和私有函数,再定义构造函数极其共有方法。构造函数不使用函数声明,实际上是创建了一个全局变量。公有方法在原型上定义。

(function(){var name = "";Person = function(value){ name = value; };Person.prototype.getName = function(){return name;};Person.prototype.setName = function (value){name = value;}; })();var person1 = new Person("Nicholas"); alert(person1.getName()); //"Nicholas" person1.setName("Greg"); alert(person1.getName()); //"Greg"var person2 = new Person("Michael"); alert(person1.getName()); //"Michael" alert(person2.getName()); //"Michael"

这种方法下,name成了一个所有实例公有的静态属性,更改它会影响到所有的实例。

3.模块模式是为单例创建私有变量和特权方法的。(单例指只有一个实例的对象,是以对象字面量的方式创建的。)

var single=function (argument) {var privateVar=10;function privateFun () {//私有方法函数 }return {publicProerty:true,//返回的共有方法可访问私有变量publicMethod:function () {privateVar++;return privateFun()}} }

 

模块模式使用一个返回对象的匿名函数,在这个匿名函数的内部,首先定义私有变量和函数,然后将一个对象字面量作为函数的值返回。返回的对象字面量中只包含公开属性和方法。由于这个对象是在匿名函数内部定义的,因此它的共有方法有权访问私有变量和函数。也就是说,这个对象字面量定义的是单例的公共接口。这种模式在需要对单例进行某些初始化,同时又需要维护其私有变量时有用。

转载于:https://www.cnblogs.com/rizzle/p/4534662.html

总结

以上是生活随笔为你收集整理的【JS笔记】私有变量的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。