JavaScript 中的 call 是換類用的
我不會 'use strict' 的,所以本文所述並不嚴謹。本來,現在的 JavaScript 就是你愛怎麼看它它就是什麼樣兒的。
比如說,你怎麼看這句話:
var o = new SomeClass();
生成一個類的對像是吧。乍一看你也不知道這是 C# 還是 JavaScript 的。那定義這個類的呢?
function SomeClass() {
(function SomeClass () {
console.log('SomeClass Constructor');
})();
}
我知道是沒人這麼玩兒 JavaScript 的。那麼問題來了,C# 你沒本事給一個對像換類是吧,但 JavaScript 行。
var obj = new SomeClass();
AnotherClass.call(obj);
此時,obj 對像所屬的類換成了 AnotherClass,被 call 後,obj 它已經是一個 AnotherClass 類的對像了。丫 obj 會重新做人,執行一次 AnotherClass 的建構函式。
所以,JavaScript 中的 call 是給對像換類玩兒的。
-----------------------------------------------
根本就不是這麼回事兒。
在 JavaScript 裡,所有的 function 都是 Function 類的對像。所以 SomeClass 是類,也是對像。所以 JavaScript 裡,類也是一種對像。
C#,你類對像個試試?
所以 JavaScript 天生就是個函式式的語言。多好。
-----------------------------------------------
根本就不是這麼回事兒。
在 C# 裡,Type 和 Class,就和 Attributes 和 Properties 一樣,反正我是懶得去扣區分。問這問題的哲學觀就不正常,你問 C# 去怎麼區分。在 JavaScript 裡是沒有搞區分的機會,typeof 算符是個廢物,而 class 也不是什麼類。
JavaScript 你搞個 Curry 給我看看?連 pipe 你都沒有。
-----------------------------------------------
根本就不是這麼回事兒。
不嚴謹不是可以胡扯的藉口。
JavaScript 之所以為 JavaScript,是因為 prototype。
真相大白。
所以 JavaScipt 中的 call 是用來玩兒多型的。
這才是 call 的奧義。
這才是真正的多型,這才是最牛屄的多型。今晚你想我是寶寶,我是寶寶,你想我是冰兒,我是冰兒。想要誰,call 一下,隨 call 隨到。
好,那麼問題來了。事件是什麼呢?
你猜呀。
------------------------------------------------
今天,以新的身份,重回微軟亞太研發集團大廈。黃健翔鼓動效果被微軟的假給抵銷得一乾二淨。不過,體育和傳媒一樣,都是好堂口。可以做事情的。