繼承(4) 命名空間與鏈式呼叫

2021-08-29 07:12:13 字數 1886 閱讀 1657

命名空間

管理變數,防止汙染全域性,適用於模組化開發

var name = "bcd";

var init = (function ()

return function ()

}())

init();//abc

是不是外面的name與裡面的name沒有相互影響。

思考問題:

如何實現鏈式呼叫模式(模仿jquery)

他咋這麼強大呢,能乙個方法乙個方法的呼叫!

那咱們能不能模擬出這個東西,調完乙個方法接著再呼叫另外幾個方法。

是不是現在只能deng.smoke();deng.drink();deng.perm();的這樣呼叫,

能不能直接deng.smoke().drink();這樣呼叫?

是不是不能啊,smoke倒是出來了,那你的drink呢?

那現在想一想為什麼會這樣呢?

是不是因為smoke();完事之後返回的是undefined吧,undefined.drink();什麼都不是!undefined不可能有drink屬性!

現在怎麼改呢?

這樣不就行了嗎,在每個函式後面加一條return deng;他會在函式執行完之後返回deng,而不是返回undefined了,那還有沒有其他的方法?

在乙個物件的函式裡面,他的this指向的是誰,是不是代表我啊,是不是用this更好。

var deng = ,

drink : function () ,

perm : function ()

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

return deng是不是也可以,但是現在我要是把物件的構造權力放到建構函式裡面呢,

你都不知道構造出的物件叫啥名吧!

所以你想實現方法的連續呼叫是不是return this就好了。

函式呼叫與 命名空間

命名空間的載入順序 1.啟動直譯器載入全域性命名空間 內建函式等 2.執行py檔案執行全域性命名空間 for if while 3.執行函式執行區域性命名空間 什麼是命名空間?存放名字的空間 如果你想訪問乙個變數值,必須先方向對應的命名空間,拿到名字和對應的記憶體位址的繫結關係 命名空間的分類 1 ...

物件,類,命名空間,繼承

就是把過程和資料包圍起來,對資料的訪問只能通過已定義的介面 也就會牽涉到下面要談到的介面的概念 比如相思鳥和烏鴉,我們在抽象時,我們忽略它們嘴的不一樣,而我們只在意它們都是有嘴的 mouth 我們忽略它們羽毛顏色的不一樣,而只在意它們的羽毛是有顏色的 color 然後我們抽象出嘴 羽毛顏色等特點。然...

C 命名空間 預設命名空間與匿名命名空間

2.匿名命名空間 預設命名空間也叫全域性命名空間,所有沒有置於某一具體命名空間下的 即在預設命名空間下,例如func main 函式。include void func void intmain int argc,char ar void func void 需要注意的是 這個就是類似於c語言裡簡單...