javascript
【JS笔记】私有变量
1.任何函數(shù)中定義的變量都可以認(rèn)為是私有變量。函數(shù)內(nèi)部可以訪問,外部不能訪問。
可以通過閉包創(chuàng)建特權(quán)方法訪問私有變量。
function Foo(){var n=10;this.returnN=function(){return n;}; }; var newfoo=new Foo(); console.log(newfoo.returnN())//102.靜態(tài)私有變量的創(chuàng)建是在私有域中定義私有變量和私有函數(shù),再定義構(gòu)造函數(shù)極其共有方法。構(gòu)造函數(shù)不使用函數(shù)聲明,實(shí)際上是創(chuàng)建了一個(gè)全局變量。公有方法在原型上定義。
(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成了一個(gè)所有實(shí)例公有的靜態(tài)屬性,更改它會影響到所有的實(shí)例。
3.模塊模式是為單例創(chuàng)建私有變量和特權(quán)方法的。(單例指只有一個(gè)實(shí)例的對象,是以對象字面量的方式創(chuàng)建的。)
var single=function (argument) {var privateVar=10;function privateFun () {//私有方法函數(shù) }return {publicProerty:true,//返回的共有方法可訪問私有變量publicMethod:function () {privateVar++;return privateFun()}} }?
模塊模式使用一個(gè)返回對象的匿名函數(shù),在這個(gè)匿名函數(shù)的內(nèi)部,首先定義私有變量和函數(shù),然后將一個(gè)對象字面量作為函數(shù)的值返回。返回的對象字面量中只包含公開屬性和方法。由于這個(gè)對象是在匿名函數(shù)內(nèi)部定義的,因此它的共有方法有權(quán)訪問私有變量和函數(shù)。也就是說,這個(gè)對象字面量定義的是單例的公共接口。這種模式在需要對單例進(jìn)行某些初始化,同時(shí)又需要維護(hù)其私有變量時(shí)有用。
轉(zhuǎn)載于:https://www.cnblogs.com/rizzle/p/4534662.html
總結(jié)
以上是生活随笔為你收集整理的【JS笔记】私有变量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git学习——四git版本管理
- 下一篇: 编写高质量代码改善C#程序的157个建议