原型中的function(){} vs functionName:(){}

时间:2017-12-29 10:27:34

标签: javascript

我对javascript有一个疑问,我希望有人可以解释一下。我有一个Watcher课程,它按预期工作:

function Watcher(paths) {
    let watcher_instance = Object.create(Watcher.prototype);
    watcher_instance.paths = paths;
    return watcher_instance;
}


Watcher.prototype = {
    init_watcher() {
        console.log(this.paths)
    }
}

然后,当我做

let watcher = new Watcher(paths);
watchers.init_watcher();  // prints the paths Array

一切按预期工作。

但我将原型更改为:

Watcher.prototype = {
    init_watcher: () => {
        console.log(this.paths) // prints undefined
    }
}

this.path似乎根本没有初始化。谁知道为什么?

我看过this,但没有看到任何对此行为的引用。

0 个答案:

没有答案