私有變數作用為了在對象創建過程中變數不會被外部訪問,如果要訪問只能通過屬性或定義方法方式來實現。
javascript
在c#和Java中定義私有屬性通過private關鍵詞即可,那麼在javascript中如何定義私有變數呢?下面就說一種比較另類的方法。
為什麼這裡說另類呢,有兩點不同:
1、新創建對象的實例方法不引用 this
2、不使用 new 操作符調用構造函數。
下面直接上代碼:
function Person(name, age, job){ //創建要返回的對象 var o = new Object(); //可以在這裡定義私有變數和函數 //添加方法 o.sayName = function(){ alert(name); }; //返回對象 return o; } var friend = Person("我是程序員", 29, "軟體工程師"); friend.sayName(); //"我是程序員"
除了使用 sayName() 方法之外,沒有其他辦法訪問 name 的值。
即使有其他代碼會給這個對象添加方法或數據成員,也不可能有別的辦法訪問傳入到構造函數中的原始數據。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/274424.html