JavaScript之信息的封裝 js對(duì)象入門(mén)
更新時(shí)間:2010年04月16日 19:18:07 作者:
下面對(duì)代碼的封裝是比較常用的,也比較好理解,只有先掌握了這些,才能更深入的了解面向?qū)τ谝约癹son格式的定義方法。
JavaScript之信息的封裝
在編碼前,我們需要了解如下幾個(gè)術(shù)語(yǔ);
封裝:對(duì)內(nèi)部數(shù)據(jù)的表現(xiàn)形式和實(shí)施細(xì)節(jié)進(jìn)行隱藏;
私有屬性和方法:外界只能通過(guò)其公開(kāi)的接口與其進(jìn)行存取和交互
作用域:JavaScript中,只有函數(shù)具有作用域,函數(shù)內(nèi)部定義的屬性和方法在外部無(wú)法訪(fǎng)問(wèn)
特權(quán)方法:聲明在函數(shù)內(nèi)部,能訪(fǎng)問(wèn)函數(shù)內(nèi)部變量(屬性)的方法,比較耗費(fèi)內(nèi)存;
function Person()
{
/*
* 聲明私有的數(shù)據(jù)
* 昵稱(chēng),年齡,郵箱
*/
var nickName, age, email;
/*
* 需要訪(fǎng)問(wèn)私有數(shù)據(jù)的方法(特權(quán)方法)
* 每生成一個(gè)實(shí)例將為特權(quán)方法生成一個(gè)新的副本
*/
this.setData = function(pNickName, pAge, pEmail)
{
nickName = pNickName;
age = pAge;
email = pEmail
};
this.getData = function()
{
return [nickName, age, email];
}
}
/*
* 不需要直接訪(fǎng)問(wèn)私有數(shù)據(jù)的方法(公有方法)
* 不管生成多少實(shí)例,公有方法在內(nèi)存中只存在一份
*/
Person.prototype = {
showData: function()
{
alert("個(gè)人信息:" + this.getData().join());
}
}
外部代碼通過(guò)私有或公有方法存取內(nèi)部屬性
var p = new Person();
p.setData("sky", "26", "vece@vip.qq.com");
p.showData();
演示代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
在編碼前,我們需要了解如下幾個(gè)術(shù)語(yǔ);
封裝:對(duì)內(nèi)部數(shù)據(jù)的表現(xiàn)形式和實(shí)施細(xì)節(jié)進(jìn)行隱藏;
私有屬性和方法:外界只能通過(guò)其公開(kāi)的接口與其進(jìn)行存取和交互
作用域:JavaScript中,只有函數(shù)具有作用域,函數(shù)內(nèi)部定義的屬性和方法在外部無(wú)法訪(fǎng)問(wèn)
特權(quán)方法:聲明在函數(shù)內(nèi)部,能訪(fǎng)問(wèn)函數(shù)內(nèi)部變量(屬性)的方法,比較耗費(fèi)內(nèi)存;
復(fù)制代碼 代碼如下:
function Person()
{
/*
* 聲明私有的數(shù)據(jù)
* 昵稱(chēng),年齡,郵箱
*/
var nickName, age, email;
/*
* 需要訪(fǎng)問(wèn)私有數(shù)據(jù)的方法(特權(quán)方法)
* 每生成一個(gè)實(shí)例將為特權(quán)方法生成一個(gè)新的副本
*/
this.setData = function(pNickName, pAge, pEmail)
{
nickName = pNickName;
age = pAge;
email = pEmail
};
this.getData = function()
{
return [nickName, age, email];
}
}
/*
* 不需要直接訪(fǎng)問(wèn)私有數(shù)據(jù)的方法(公有方法)
* 不管生成多少實(shí)例,公有方法在內(nèi)存中只存在一份
*/
Person.prototype = {
showData: function()
{
alert("個(gè)人信息:" + this.getData().join());
}
}
外部代碼通過(guò)私有或公有方法存取內(nèi)部屬性
復(fù)制代碼 代碼如下:
var p = new Person();
p.setData("sky", "26", "vece@vip.qq.com");
p.showData();
演示代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
您可能感興趣的文章:
- javascript 面向?qū)ο笕吕砭氈當(dāng)?shù)據(jù)的封裝
- Javascript 面向?qū)ο螅ǘ┓庋b代碼
- Javascript 面向?qū)ο缶幊蹋ㄒ唬?封裝
- javascript對(duì)XMLHttpRequest異步請(qǐng)求的面向?qū)ο蠓庋b
- javascript面向?qū)ο蟀b類(lèi)Class封裝類(lèi)庫(kù)剖析
- javascript 面向?qū)ο缶幊袒A(chǔ):封裝
- js實(shí)現(xiàn)對(duì)ajax請(qǐng)求面向?qū)ο蟮姆庋b
- javascript 面向?qū)ο蠓庋b與繼承
- JavaScript中的Primitive對(duì)象封裝介紹
- 學(xué)習(xí)Javascript面向?qū)ο缶幊讨庋b
- Javascript之面向?qū)ο?-封裝
- JavaScript對(duì)象封裝的簡(jiǎn)單實(shí)現(xiàn)方法(3種方法)
相關(guān)文章
JS類(lèi)定義原型方法的兩種實(shí)現(xiàn)的區(qū)別評(píng)論很多
JS類(lèi)定義原型方法的兩種實(shí)現(xiàn)的區(qū)別評(píng)論很多...2007-09-09JS小框架 fly javascript framework
這幾天把工作中積累的東西整理成了一個(gè)小框架,分享給大家,希望對(duì)大家有用,也想聽(tīng)一下大家的批評(píng)2009-11-11DOMAssitant最新版 DOMAssistant 2.5發(fā)布
google code上的project ,值得大家學(xué)習(xí)它的類(lèi)庫(kù)2007-12-12