在 阮一峰的 《Javascript 严格模式详解》这篇文章中,4.3节 增强的安全措施 有提到use strict
严格模式中,会禁止this
关键字指向全局对象。既然这是一个安全措施,那么在正常模式中,this
关键字指向全局对象是不是有什么安全隐患?
-------------------- 2017/3/17 “诈帖”分割线 --------------------
各位不好意思,正在清理未解决问题。如有打扰,请谅解。
回看这个问题,大家回答的大体上来说都是由于代码在编写过程中的疏忽或者说意外导致this
的指向发生了变化,从而导致相关数值发生变化。这可能会导致程序出现BUG或者一些意料之外的行为。
我当初在提出这个问题的时候,内心对于安全隐患
这个词语预先的设定时类似于:漏洞。可能被人利用的漏洞,从而导致一些牵扯到系统安全或者用户账号安全的问题出现。
现在想请教大家,this
指向全局对象会牵扯到这方面的安全问题吗?
简单来说,
你希望是这样调用
p = new Point(1,2);
,可是不小心写成p = Point(1,2)
不会报错,却不会出现你希望的结果。