JavaScript筆記(第四部分)

2021-09-12 08:02:27 字數 3767 閱讀 1278

命 名 空 間 :管理變數,防止汙染全域性,適用於模組開發

//   之 前 的 解 決 辦 方 (已經不用)--- 命名空間                  

var org = ,

xuming :

},department2 : ,

lisi :

}

}

(了解即可)用 法

org.department1.jicheng.name ; — 簡化 — var jc = org.department1.jicheng; jc.name;

-------- 真 正 命 名 空 間 的 用 法 -------

--------with( object )--------------

作 用: 達 到 簡 化 代 碼 的 作 用

缺 點: 過於強大,能修改作用域鏈,造成程式效率低下(es5.0 禁止使用它

例如:

var org = ,              

deng :

},

dp2 :

}

}訪問 org.dp1.jc.name

with(org.dp1.jc)

with 的尋找順序

先找 自己引數 裡的,在找自身所處環境裡的,最後在找全域性的

使用with語句關聯了 引數物件 ,解析時 with**塊的內部把每個變數都認為是區域性變數;

如果區域性變數裡與car物件屬性(例如size)屬性同名,這個區域性變數就會指向car裡面的屬性;

//  用 閉包 可以實現變數私有化,不會汙染全域性                

// init ------- 初始化

var name = "laodeng";

var init = (function ()

return function ()

} () );

// 兩個 name 變數互不影響

init();

console.log(name);

零 散 的 知 識 點

實現乙個 方法 的 連續呼叫 ( 模 仿 了 jquery 包裡的 鏈式呼叫模式 )

var deng = ,           

drink : function () ,

perm : function ()

}

deng.smoke() .drink()

// ----> 此時執行完 smoke() 後,return 返回的是 undefined ,無法繼續執行

// 當 return this 時是可以執行的

// 若想連續執行函式,必須在每個函式裡 重新返回 物件

deng.smoke().drink().perm();

屬 性 名 拼 接 問 題

var deng = ,

wife2 : ,

wife3 : ,

wife4 : ,

callwife : function (num)

}通 常 在 訪 問 一 個 對 象 屬 性 時 :

一般用法為 : deng.name ------> 實質的隱式轉化為 this[ 』 name 』 ]

對 象 的 枚 舉 ( 遍 歷 ):

for in (簡化版的 for 迴圈)

hasownproperty(過濾性方法)(判斷當前屬性是不是自身的)

ininstanceof

遍 歷 對 象 屬 性

var obj =

}

1.( for in ) 遍歷 物件中所有 屬性,自己手動新增都可以遍歷   

for (var prop in obj )

}2. in ---> (最不常用的遍曆法,但是筆試題常考)

// 判斷 「 」 (字串)裡的屬性是否屬於 該物件,是就返回 true,

// 不分青紅皂白,包括員原型的屬性也認為是當前物件的屬性

// 注意: 屬性要寫在 「 」 裡,不加字串,認為是變數

console.log( " height " in obj);

3. instanceof (經常出現,常考)

// a instanceof b --------> a 物件 是不是 b 建構函式 構造出來的

// 看 a 物件的原型鏈上 有沒有 b 的原型,是就 返回 true

function person ()

var person = new person();

console.log( person instanceof person );

// 區別 陣列 物件 ( tostring() 和 call () 方法 )

object.prototype.tostring = function ()

object.prototype.tostring.call();

------------------ t h i s -----------------------

------------------ arguments ----------------

------------------ function --------------------

arguments.callee————————> 指向的是 函式 的 引用(也就是函式本身)

func.caller————————> 函式自身擁有的,顯示出某個函式被呼叫的環境

arguments.callee() 示例:

// 求階乘的函式中,要實現呼叫自身函式,但是自身的函式卻沒有函式名,

// 在這樣的情況下就找不到函式引用,通過 arguments.callee()來解決

var num = (

function (n)

return n*arguments.callee(n-1);

} (3) )

func.caller 示例:

函式自身擁有的,顯示出某個函式被呼叫時的環境

function test ()

function demo ()

test();

第四部分 方法3

對employee.calculatepay方法的呼叫是問題的原因。我們需要的是晚繫結。晚繫結 latebinging 意味著編譯器到執行時才選擇要執行的方法。為了迫使編譯器呼叫向上型別轉換得到的物件的方法的正確版本。我們使用了兩個關鍵字 virtual 和override.必須在基類方法中使用vi...

第四部分 方法5

linux繼承了unix作業系統結構清晰的特點。在linux下的檔案結構非常有條理。但是,上述的優點只有在對linux相當熟悉時,才能體會到。vmlinuz 我們已經知道,每乙個linux都有乙個核心 vmlinuz 我們在這個核心上新增上可以完成各種特定功能的模組,每個模組就體現在 linux中各...

GEF 高階,第四部分 Locator

簡介 本文是gef高階的第四部分,主要描述了locator的概念和使用方法。locator是 乙個圖形定位器,用來動態的決定某個圖形相對於另外乙個圖形的位置,因此可以用來構造一些 複雜的圖形或者實現一些比較有趣的功能。由於eclipse 3.3已經發布,本文的示例 是在 eclipse 3.3,ge...