2013-10-30 24 views
0

在引導插件定義,我看到以下內容:引導.Constructor

// Dropdown plugin 
$.fn.dropdown.Constructor = Dropdown 

// Modal plugin 
$.fn.modal.Constructor = Modal 

// Similarly, on other plugins as well e.g. Tooltip, etc. 

爲什麼他們會需要這種分配,考慮DropdownModal任何理由其實都是構造函數?

var Modal = function (element, options) { 
    ... 
} 

正在使用.Constructor屬性名稱的約定嗎?我可能是錯的,但.Constructor是一個任意的屬性,對吧?

回答

0

它允許檢查JS中變量的類型。例如,通過定義的構造特性,它能夠容易地評估類型如下:

var myModal = new modal(); 
if(myModal.constructor == Modal) 
{ 
    // do something 
} 

由於自舉的JavaScript使用相同的構造對於一些它的JavaScript元件(Popovers需要工具提示,例如)很可能在Bootstrap代碼中用於確定變量引用的元素類型。

+0

你是對的:那個特定的屬性是爲了他們的「內部」使用。例如,'Popover.prototype = $ .extend({},$ .fn.tooltip.Constructor.prototype)'。我最初想知道這是JS最佳慣例還是OO慣例。 – moey