window.postMessage.length!==1 是什么意思?

window.postMessage.length!==1 是什么意思?我打印出来window.postMessage.length永远都===2

阅读 2.9k
2 个回答

window.postMessage是个函数。

length是函数对象的一个属性值,指该函数有多少个必须要传入的参数,即形参的个数。

不包括...参数,或者有默认值的参数。Function.prototype.length文档

window.postMessage的签名(其中transfer是可选参数):

otherWindow.postMessage(message, targetOrigin, [transfer])

window.postMessage文档

实际上,各个浏览器的形参个数都不同,今天遇到一个坑

  • chrome、火狐的形参个数是1
  • 360急速是2(是的,就是批了一层皮的webkit)
  • edge是0

所以,要用这个属性需谨慎

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题