JavaScript之資訊的封裝
在編碼前,我們需要了解以下幾個術語;
封裝:對內部資料的表現形式和實作細節進行隱藏;
私有屬性與方法:外界只能透過其公開的介面與其進行存取與互動
作用域:JavaScript中,只有函數具有作用域,函數內部定義的屬性和方法在外部無法存取
特權方法:宣告在函數內部,能存取函數內部變數(屬性)的方法,比較耗費記憶體;
function Person() { /* * 声明私有的数据 * 昵称,年龄,邮箱 */ var nickName, age, email; /* * 需要访问私有数据的方法(特权方法) * 每生成一个实例将为特权方法生成一个新的副本 */ this.setData = function(pNickName, pAge, pEmail) { nickName = pNickName; age = pAge; email = pEmail }; this.getData = function() { return [nickName, age, email]; } } /* * 不需要直接访问私有数据的方法(公有方法) * 不管生成多少实例,公有方法在内存中只存在一份 */ Person.prototype = { showData: function() { alert("个人信息:" + this.getData().join()); } }
外部程式碼透過私人或公有方法存取內部屬性
var p = new Person(); p.setData("sky", "26", "vece@vip.qq.com"); p.showData();
示範程式碼:
<script> function Person() { var nickName, age, email; this.setData = function(pNickName, pAge, pEmail) { nickName = pNickName; age = pAge; email = pEmail }; this.getData = function() { return [nickName, age, email]; } } Person.prototype = { showData: function() { alert("个人信息:" + this.getData().join()); } } var p = new Person(); p.setData("PHP中文网", "4", "admin@php.cn"); p.showData(); </script>
更多JavaScript資訊的封裝jsP入門相關文章請關注PHP入門網!