传递函数(具有回调函数(具有参数))作为对象属性

时间:2013-05-16 17:03:06

标签: javascript callback jsobject

我有showProfile函数,它接受回调函数。

回调函数还有一个作为对象的段。

showProfile(call_back_fn) 

调用它:

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

我想将此函数设置为Person Object的属性:

    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);

如何将此函数(showProfile)作为对象属性。如果可能,如何传递其参数(哪个是回调函数)? 然后,如何拨打上面代码段中的fnshowProfile

更新

OtherWise,如果我创建一个Person对象,如下所示:

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

如何访问showProfile以添加回调函数作为参数: 然后,我如何从p对象执行showProfile。

1 个答案:

答案 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'}))