Chrome の console 関数が bind 不要になってた
- カテゴリ:
- JavaScript
- Chrome
- コメント数:
- Comments: 0
◆ 他ブラウザも bind 不要なので bind せずに使える
昔は console.log などを console コンテキストで使わないと Illegal invocation とエラーになってました
こういうの
対策で bind を使っていました
Promise で使われてるのは目にしたことがある人が多いと思います
ですが 今はエラーになりません
そのまま使えます
IE / Edge はもともとエラーにならないので Chrome がエラーにならなくなったことで 今後は console に対して bind する必要はなさそうです
Chrome 52 の頃でも エラーになってないので結構前に変更されたのかもしれません
console なのでデバッグ用途のみですがけっこうありがたいことなのでもうちょっと早く気づけていたらなー と思います
こういうの
const log = console.log
log(1)
log(1)
対策で bind を使っていました
const log = console.log.bind(console)
log(1)
log(1)
Promise で使われてるのは目にしたことがある人が多いと思います
new Promise(fn)
.then(console.log.bind(console), console.error.bind(console))
こんなの.then(console.log.bind(console), console.error.bind(console))
ですが 今はエラーになりません
const log = console.log
log(1)
// 1
Promise.resolve(1).then(console.log)
// 1
log(1)
// 1
Promise.resolve(1).then(console.log)
// 1
そのまま使えます
IE / Edge はもともとエラーにならないので Chrome がエラーにならなくなったことで 今後は console に対して bind する必要はなさそうです
Chrome 52 の頃でも エラーになってないので結構前に変更されたのかもしれません
console なのでデバッグ用途のみですがけっこうありがたいことなのでもうちょっと早く気づけていたらなー と思います