以下のコードは問題点を簡略化したものですが、
タスクを実行した際、14行目のmethodの実行では正常にlogが出力されるものの、
16行目で実行された際にはmethodのthisがundefinedとなり、ログの出力でエラーになります。
ソースコード
JavaScript
1const gulp = require('gulp'); 2 3class Class { 4 constructor (text) { 5 this.text = text; 6 } 7 method () { 8 console.log(this.text) 9 } 10} 11 12var NewClass = new Class ('Message'); 13 14NewClass.method(); 15 16gulp.task('default', gulp.series(NewClass.method));
実行結果
D:***\node_modules\gulp\bin\gulp.js Message [20:24:08] Using gulpfile D:***\gulpfile.js [20:24:08] Starting 'default'... [20:24:08] Starting 'method'... [20:24:08] 'method' errored after 683 μs [20:24:08] TypeError: Cannot read property 'text' of undefined at method (D:***\gulpfile.js:8:22) at bound (domain.js:301:14) at runBound (domain.js:314:12) at asyncRunner (D:***\node_modules\async-done\index.js:55:18) at _combinedTickCallback (internal/process/next_tick.js:131:7) at process._tickCallback (internal/process/next_tick.js:180:9) [20:24:08] 'default' errored after 1.95 ms
Node.jsやgulpについては全くの素人なので、methodが実行されるのも関わらず、thisが空となる理由がわかりません。
原因をお教えいただければと思います。
よろしくお願いいします。
環境
node.js v8.11.4
gulp v4.0.0
あなたの回答
tips
プレビュー