首先以下假設的校正:
「委託功能意味着它的委託給另一功能在不同的文件中。「
1)忘記「文件」的東西,這是所有關於上下文(例如一個類的實例)
2)不委託給其他功能:功能委託給另一個上下文(在JavaScript,請訪問
var shootMissile = function() {
this.missiles --;
};
我們可以將其委託給了一堆不同的上下文(=對象),例如船:
給定下面的函數「這個」關鍵字)
因此JavaScript,背景
var Boat = function() {
this.missiles = 10 ;
},
boatInstance = new Boat() ;
或飛機:
var Plane = function() {
this.missiles = 5 ;
},
planeInstance = new Plane() ;
最後的工作示例:
// planeInstance will have 4 missiles after call of delegated function
shootMissile.apply (planeInstance);
// boatInstance will have 9 missiles after call of delegated function
shootMissile.apply (boatInstance);
希望這個簡短的解釋是夠你用的。
這是我見過的關於將Objective-C移植到Javascript的第二個問題。如果以這種方式進行處理,您將面臨一個痛苦的世界,因爲您的代碼依賴於Objective-C習語和Cocoa框架對象。Javascript足夠不同,你需要退後一步,並考慮到Javascript的整個設計。 – sosborn