2013-05-16 205 views
0

我有showProfile函數,它是接受回調函數。作爲對象屬性的傳遞函數(具有回調函數(有參數))

回調函數也有一個對象的區段。

showProfile(call_back_fn) 

調用它:

showProfile(function(obj){console.log(obj)}) 

我要將此功能作爲屬性Person對象:

function Person(name,age,showProfile){ 
     this.name=name ; 
     this.age=age; 
     /* 
     this.showProfile=showProfile ??? 
       OR 
     this.prototype.showProfile=showProfile ??? 
       OR What ??  
*/ 

       return this;   
    } 

然後,創建一個Person對象:

var p=new Person('Abdennour',23,fnshowProfile); 

我如何使這個功能(顯示配置文件)作爲對象屬性。如果可能,如何傳遞它的參數(這是一個回調函數)? 然後,如何呼叫fnshowProfile這是在上面的片段。

UPDATE

否則,如果我創建了一個Person對象爲follwoing:

var p=new Person('Abdennour',23,showProfile()); 

我怎麼能訪問showProfile添加一個回調函數作爲參數: 的d那麼,如何能我從p對象執行showProfile。

+1

這是有點不清楚,你可能會js爲此做些什麼嗎? –

+0

我編輯問題的標題:傳遞函數(具有回調函數(有參數))作爲對象屬性。 –

+0

另請參閱更新後編寫的文字 –

回答

0

是的,我發現它:
演示http://jsfiddle.net/abdennour/5vNQ5/

callbackshowProfile=function(obj){ 
    alert(obj['field1']); 

} 

showProfile=function(cfn){ 
    cfn(); 
} 


function Person(name,age,shfn,callback){ 
this.name=name; 
    this.age=age; 
    this.shfn=shfn; 
    this.callback=callback; 
    return this; 
} 

創建一個Person對象:

var pp=new Person('Abdennour',13,showProfile,callbackshowProfile) 

要調用showProfile其中有回調函數的參數,這是有一個對象作爲參數。

pp.shfn(pp.callback.bind(null,{field1:'My field 1'})) 
相關問題