JavaScript 有趣問題

http://perfectionkills.com/javascript-quiz/

裡面問了蠻多特殊語法的問題,還有一些有名字的匿名函式的應用技巧,還有一些很詭異的東東。

解答加解釋…

http://codingspot.com/2010/02/answering-the-juriy-zaytsev-javascript-quiz/

這篇網誌作者蠻有趣的,他在 Stack overflow 回答了蠻多問題,分數蠻高的。

ECMA 規格非官方整理

http://bclary.com/2004/11/07/

JavaScript oop-2 emulate new function

我所理解的 new Constructor();

在 js 裡面要模擬 classical 的方式 產生物件的方式就是用 new 加上函式 當成建構子。

以我目前的理解,內部可能是這樣運作的:

var n = function(construct,args) {
  var o = new Object();
  o.prototype = construct;
  construct.apply(o,args);
  return o;
}
var test = n((function(a) { this.a = a}),[1]);
alert(test.a);// 1

n 函式 模擬 new 的動作,第一個函式為建構子,第二個函數為參數陣列,
進入以後則模擬物件呼叫建構子,並將物件當成 this 傳入,最後將產生的物件回傳。