私はJSを初めて使用しています。私は(Person)
へPerson()
を変更した場合、私はPerson.onが関数を実行したときにPerson.onが機能しない理由
TypeError: Person.on is not a function
を取得し、なぜ私はそれが動作しますが、Person()
機能を機能していない、大丈夫だろうか?私がかっこで書くとき、それはパラメータではありませんか?あなたは私が学ぶのを助けることができますか?
var events = require("events");
var util = require("util");
var Person = function (name) {
this.name = name
}
util.inherits(Person, events.EventEmitter)
var name1 = new Person("Jack")
var People = [name1]
People.forEach(function Person(){
Person.on('key',function(msg){
console.log(Person.name + ' said this ' + msg);
});
});
name1.emit("key","okey")
あなたはコールバック関数として 'Person'を再宣言しました。 'function Person()'の代わりに、おそらく 'function(Person)'がほしいと思います。それでも、私はおそらくそれらをコンストラクタとインスタンスを区別するために '人物 'に変更するでしょう。 – user184994
node.jsタグがありますか? – RobG
はい、 'Person(){'のトークン "Person"は関数の名前であり、パラメータではありません。 – Bergi