0

我有 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在上面的代码段中。

更新

否则,如果我创建一个 Person 对象如下:

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

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

4

1 回答 1

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

创建一个人对象:

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

调用具有回调函数作为参数的showProfile,它有一个对象作为参数。

pp.shfn(pp.callback.bind(null,{field1:'My field 1'}))
于 2013-05-16T23:36:44.653 回答