我是 js 的新手,最近我了解到我们可以通过为对象分配一个新值来导航到浏览器选项卡中的新页面,window.location例如:window.location = "https://www.stackoverflow.com"。但是我对这个赋值操作感到困惑。在 javascript 中,变量在赋值操作中改变它的类型和值。例如,当运行以下程序段时, 的类型a将是undefined然后是number最后是string:var a;
a = 1;
a = "str";但是将一个字符串对象(即 url)分配给并window.location不会改变它的类型,它window.location仍然是类的一个实例Location,只是它的一些属性发生了变化(例如window.location.href,window.location.host等等)。这就像用函数重载“ = ”运算符一样window.location.assign(),但 javascript 似乎没有提供重载机制。我不知道浏览器(即 javascript 运行环境)做了什么来实现这一点。如果有人能帮助我解决这个问题,我将不胜感激。
1 回答
繁星淼淼
TA贡献1775条经验 获得超11个赞
它可能是一个 setter https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set结合location.assign()
(https://developer.mozilla.org/en-US/docs/Web /API/Location/assign ) 在幕后被调用。
来自https://developer.mozilla.org/en-US/docs/Web/API/Window/location:“每当将新值分配给位置对象时,将使用 URL 加载文档,就像 location.assign ()”。
添加回答
举报
0/150
提交
取消