内函数返回父函数,怎么样?

时间:2017-03-24 14:18:57

标签: javascript node.js this

我正在浏览一个JavaScript模式,链接。

这里我有这样的代码

function thisFunc(fullName){
    var that = this;
    this.firstName = function(name){
        fullName = fullName + name;
        return this;
    };

    this.lastName = function(name){
        fullName = fullName + ' ' + name;
        return that;
    };

    this.show = function(callback){
        callback(fullName);
        return that;
    };
}

var x = new thisFunc('');
x.firstName('Karthikeyan').lastName('Sundararajan').show(function(result){
    console.log(result);
});

var y = new thisFunc('');
console.log(y.firstName('Karthik'));

在最后一行,打印函数firstName的返回值,得到这样的输出。

  

thisFunc {firstName:[Function],lastName:[Function],显示:   [功能]}

为什么它返回thisFunc,它是firstName的父,我希望它会返回firstName。我说,当我回复这个'并且'返回那个'。

1 个答案:

答案 0 :(得分:2)

因为firstName()的返回是实际的父函数。如果您希望它返回firstName功能,则不要调用它,只需执行

console.log(y.firstName);

我希望我能正确理解你的问题。