最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript面象對象成員、共享成員變量實驗

 更新時間:2010年11月19日 22:21:29   作者:  
Javascript 面象對象成員、共享成員變量實驗,需要的朋友可以參考下。
1)Javascript對象成員實驗:
復(fù)制代碼 代碼如下:

var f = function d() {
this.a = "a";/*這句運行后不存在f.a也不存在d.a存在一個window.a*/
var b = "b";/*局部變量*/
};
var o = { ff: function () {
var a = "a"; /*局部變量*/
this.b = "b"; /*這句運行后存在o.b*/
}
};
function Man(){
this.age = 30;
};
Man.prototype.sex = 1;
Man.prototype.name = function () {
};
debugger;/*第一處斷點*/
f();
o.ff();
var m = new Man();
debugger; /*第二處斷點*/

第一處斷點時對象成員的存在情況:

第二處斷點時對象成員的存在情況:

一句話:關(guān)于js函數(shù):this指的是所在函數(shù)外最近一層的對象,而嵌套函數(shù)的內(nèi)部函數(shù)內(nèi)的this指的是window對象。

一句話:js的oo特性:使用this.成員方式定義對象的成員使用對象具有js特有的動態(tài)持性,類與對象實例有差異的,而.prototype.成員定義成員是經(jīng)典的定義方式,類與對象實例是統(tǒng)一的。
2)Javascript對象共享性成員變量實驗:

復(fù)制代碼 代碼如下:

function Ghost(_name) {
this.name = _name;
this.age = 1000;
}
Ghost.prototype.setName = function (_name) {
this.name = _name;
}
function Man(_name){
this.age = 30;
this.ghost = new Ghost("實例變量" + _name);
};
Man.prototype.ManGhost = new Ghost("共享變量");
var a = new Man("a");
var b = new Man("b");
var amg = a.ManGhost.setName("我只設(shè)置a的共享變量");
debugger; /*第一處斷點*/
var ag = a.ghost;
var bg = b.ghost;
var bmg = b.ManGhost;
debugger; /*第二處斷點*/

運行到第一片斷點:

簡單變量與對象變量的差別

使用.prototype.定義的成員,如果該成員為簡單變量則,每個對象實例都有一個各自的副本。(例如:Man.prototype.noObejctVar)

使用.prototype.定義的成員,如果該成員對象變量,則每個對象實例都共享同一個對象副本。(例如:Man.prototype.ManGhost)

為什么有這樣的差別呢?單從ManGhost變量與noObjectVar變量它們都是使用.prototype.定義的成員是沒有差別的,只是它們類型不同,表示它們訪問和使用用它們的方式是不同的,只是ManGhost變量內(nèi)存放的是new出來的對象,而noObjectVar變量內(nèi)存放的是值(或某種值的引用),換句話說ManGhost存放的是對象的引用,通過這個引用可以操作這個對象,noObjectVar變量內(nèi)存放也可是某種值引用,可是無法使用這個引用來操作它.

從另一個視角看

noObjectVar變量存放的是字串對象的引用.

a.noObjectVar="新字符串a(chǎn)";

這表示noObjectVar從原來的存放字符串對象引用,指向新字符串對象引用.(也可以說新的字符串對象覆蓋原字符串對象)

a.ManGhost=new Ghost("a");

b.ManGhost=new Ghost("b");

這樣a與b就不存在共享對象的問題了.不過這樣就存在另一個問題.prototype.ManGhost時定義新建的對象就浪費了.不過這樣使用.prototype.是錯誤的.

使用.prototype.定義成員函數(shù)及定義共享變量才是正確的用法.

使用javascript來正確的定義類請見:[技術(shù)備忘錄]javascript來定義類的規(guī)范

相關(guān)文章

  • 從柯里化分析JavaScript重要的高階函數(shù)實例

    從柯里化分析JavaScript重要的高階函數(shù)實例

    這篇文章主要為大家介紹了從柯里化分析JavaScript重要的高階函數(shù)實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • JS實現(xiàn)簡單抖動效果

    JS實現(xiàn)簡單抖動效果

    這篇文章給大家結(jié)束了通過js實現(xiàn)抖動效果,非常不錯,具有參考借鑒價值,感興趣的朋友參考下吧
    2017-06-06
  • 詳解JavaScript?(!!)?中的雙感嘆號是干什么用的

    詳解JavaScript?(!!)?中的雙感嘆號是干什么用的

    JavaScript?不是靜態(tài)語言,而是動態(tài)語言,這意味著變量可以引用或保存任何類型的值,此外,該類型可以隨時更改,這篇文章主要介紹了JavaScript?(!!)?中的雙感嘆號作用,需要的朋友可以參考下
    2022-09-09
  • javascript 7行代碼畫出一個圍棋棋盤

    javascript 7行代碼畫出一個圍棋棋盤

    javascript 只有7行代碼即可畫出圍棋棋盤的實現(xiàn)代碼。大家可以看看。
    2009-07-07
  • js實現(xiàn)的彩色方塊飛舞奇幻效果

    js實現(xiàn)的彩色方塊飛舞奇幻效果

    這篇文章主要介紹了js實現(xiàn)的彩色方塊飛舞奇幻效果,涉及JavaScript響應(yīng)鼠標(biāo)事件動態(tài)操作頁面元素樣式的相關(guān)技巧,需要的朋友可以參考下
    2016-01-01
  • JS實現(xiàn)的新浪微博大廳文字內(nèi)容滾動效果代碼

    JS實現(xiàn)的新浪微博大廳文字內(nèi)容滾動效果代碼

    這篇文章主要介紹了JS實現(xiàn)的新浪微博大廳文字內(nèi)容滾動效果代碼,可實現(xiàn)頁面圖文元素定時滾動的效果,涉及JavaScript時間函數(shù)定時改變頁面元素的相關(guān)技巧,需要的朋友可以參考下
    2015-11-11
  • js中獲取鍵盤事件的簡單實現(xiàn)方法

    js中獲取鍵盤事件的簡單實現(xiàn)方法

    下面小編就為大家?guī)硪黄猨s中獲取鍵盤事件的簡單實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • JS進階指南之你真的掌握變量和類型了嗎

    JS進階指南之你真的掌握變量和類型了嗎

    變量是存儲信息的容器(JS的變量名是區(qū)分大小寫的),下面這篇文章主要給大家介紹了關(guān)于JS進階指南之變量和類型的相關(guān)資料,文章通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • readonly和disabled的區(qū)別

    readonly和disabled的區(qū)別

    要慎用readonly和disabled, 指定了disabled的表單,在submit時,不會把它的值傳出去, 如下所示,有兩個text,一個是readonly一個是disabled,submit后,只能發(fā)送那個不是disabled的,注意地址欄的值. 要保存到本地,因為submit了,不然,看不到效果.
    2008-04-04
  • 關(guān)于laydate.js加載laydate.css路徑錯誤問題解決

    關(guān)于laydate.js加載laydate.css路徑錯誤問題解決

    日期時間選擇插件 laydate.js相信對大家來說都不陌生,這篇文章主要給大家介紹了關(guān)于laydate.js加載laydate.css路徑錯誤問題解決的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-12-12

最新評論

改则县| 高台县| 栾川县| 田阳县| 舒兰市| 龙南县| 荣昌县| 资源县| 兰考县| 南投县| 昌宁县| 霞浦县| 专栏| 长武县| 株洲市| 永吉县| 荥阳市| 苏尼特右旗| 南溪县| 泰州市| 罗平县| 肃北| 龙门县| 景宁| 弋阳县| 册亨县| 多伦县| 邹平县| 疏勒县| 呼和浩特市| 格尔木市| 合肥市| 隆昌县| 花莲县| 普陀区| 东至县| 蓝山县| 云南省| 西安市| 新和县| 会宁县|