2011-05-29 19 views
2

有jQuery的幾個功能,你可以做到以下幾點: $('#element').each().get('title').othercmd()使用jQuery(或者甚至只是JavaScript)的,如何鏈命令一起

我怎樣才能創建一個類(或一系列的類)來複制這種行爲? 基本上,我想是這樣的:

test = new Something() 
test.generateSection('title').addData('somedata') 

什麼這是正確的?

謝謝

回答

3

一種方法是在每個函數中返回「this」(對象)。所以你可以做這樣的事情:

<script> 
var Something = function() { 
    this.hi = function() { 
    alert('hi'); 
    return this; 
    }; 
    this.bye = function() { 
    alert('bye'); 
    return this; 
    }; 
} 
var myObj = new Something(); 
myObj.hi().bye(); 
</script> 
3

只是返回你在每個方法的末尾操作的東西。 (通常爲this)。

1

你可以實現一個鏈模式,只需通過返回當前實例的所有方法,你想能鏈。

Something.prototype.generateSection = function(title){ 
    ... code ... 
    this.sectionAdded = ...; 
    return this; 
} 
Something.prototype.addData = function(data) 
{ 
    ... continue manipulating this.sectionAdded however you need it .. 
    return this; 
} 

並對您的「班級」的其他方法做同樣的事情。需要注意的是,您必須存儲將來調用時需要的對象,在您要生成節的情況下,所以您必須將其放入實例中(在諸如sectionAdded之類的一些私有變量中),以便您能夠繼續從其他方法操縱它。

0

我不知道是否有一種方法可以輕鬆地將命令與純JavaScript結合在一起,但是如果您想用jQuery嘗試這一點,則必須將您的代碼編寫爲jQuery插件。 這其實很簡單,並且有大量的教程來編寫自己的插件。

一個我遇到的最簡單的就是這個教程:

building-your-first-jquery-plugin-that.html

相關問題