編輯:這個問題是misexpressed。我真正想問的是:需要同步編程
有沒有什麼不能用OO語言(支持閉包)使用持續傳遞的風格?
你可以谷歌什麼CPS的意思或只是堅持定義的函數/方法永不返回任何東西,總是推動數據的地方 - 使用傳遞的回調。
從原來的問題來看,我甚至可以回答自己 - 沒有像那樣的東西。而且它實際上是非常好的OO原則稱爲告訴不要問
function getName(){
return this.name;
}
console.log(xyz.getName())
與
function pushNameTo(callback){
callback(this.name);
}
xyz.pushNameTo(console.log)
好,但是這一次是如何做的事情而得名,讓名它後它做什麼,並使其更多OO:
function renderOn(responseBuilder){
var b = responseBuilder;
//or just string, whatever, depending on your builder implementation
b.field("Name: ", this.name);
b.field("Age: ", this.age);
b.image("Profile photo", this.imageData);
}
person.renderOn(htmlBuilder);
這裏的要點是 - 對象不僅包含其數據,而且包含行爲,精神,個性。 還有誰應該負責表達人的表達而不是人本身?
當然,這並不一定意味着你必須在HTML代碼,構建服務於這個目的。它甚至可以爲實際的UI渲染層生成一些xml或其他數據格式。但它總是推而不是拉。
函數式編程語言基於這個原理,所以答案顯然是* nothing *。 – deceze 2011-04-25 23:30:50
是的,我已經完全錯過了這個事實,thx :) – 2011-04-25 23:37:23
@deceze:JavaScript是如何與**功能**編程語言相關的? – zerkms 2011-04-25 23:39:15