2012-02-08 81 views
3

我新使用JavaScript的oo概念。 從ejohn.org簡單繼承Javascript簡單的繼承方法

標準原型繼承

function Person(){} 
function Ninja(){} 
Ninja.prototype = new Person(); 
// Allows for instanceof to work: 
(new Ninja()) instanceof Person 

從網站聲明超過上述

什麼是這個具有挑戰性的,不過,是我們真正想要的是的 好處'instanceof',而不是實例化Person對象並運行其構造函數的全部成本。爲了抵消這個問題,我們在我們的代碼中有一個變量 ,初始化,當我們想要實例化一個類時,它被設置爲true,其唯一目的是用於 原型。

以上聲明是什麼意思?

john-resig簡單繼承優於標準原型繼承的所有優點是什麼?

var fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/ 

上面這個測試是什麼?

任何人都可以解釋自執行功能的流程嗎?雖然代碼註釋我不能跟着流

回答

2

這意味着,我們可以實例化一個類使用instanceof,而不必調用它的虛假構造函數init

Fredprovides an answer你的第二個查詢...

的XYZ測試確定瀏覽器是否可以檢查功能的文本 體。如果可以的話,如果它實際上在本體的某個地方調用this._super() ,則可以僅通過包裝重寫的方法執行優化。由於它需要額外的關閉和 函數調用開銷來支持_super,所以如果不需要,跳過 是很好的。