js postMesssage可以传值的本质到底是函数本身,还是其this指向

在一个内嵌iframe页面的情况下,子传父使用postMessage
子页面代码如下
f84a5326477b7a7f5a8febcb742d7a5.png
在父子跨域的情况下只有5,6可以被打印出来,这个我的理解是不管是window.postMessage还是window.parent.postMessage本质都是postMessage函数,函数体里的代码不一样,区别只是内部this的问题,所以使用call绑定window.parent为this后,正常发送了message信息。
但我在父子同源的情况在测试这段代码,发现1,5,6可以正常发送
但是如果函数都是一样的,那1,2就没有本质区别,为什么同源的时候1可以而2又不行呢?
这似乎有推翻了我之前的逻辑,所以现在很困惑postMessage传值的本质到底是如何进行的。

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