您的位置:首页 > 其它

ECMAScript6.0学习之第三篇顶层对象

2016-10-28 11:55 267 查看
本文是在看完阮一峰老师的著作只会所总结的~~~~

给阮老师致敬,同时也可以去阮老师的的书里看
http://es6.ruanyifeng.com/#docs/let[/code] 
另外若要看如何使用搭配es6环境,请翻阅我以前的博客~~~

顶层对象:

顶层对象在浏览器环境指的是window对象,而在node指的是global对象。

ES5是顶层对象属性和全局变量是等价的,这不利于我们的模块化编程。

为了区分全局变量和顶层对象属性,es6中是明确规定var命令和function命令声明的全局变量依然和顶层对象属性等价。

var a=1;

console.log(global.a)  //1   因为我是在node环境下测试的。

function myfun(){

console.log("thiswindow.onload");

} /*用window.onload调用myfun()*/

window.onload = myfun;//不要括号


但是这种会照成实现不统一。但node和web worker没有window属性,而是global,但其他环境都不支持。

而es6规定let,const,class命令声明的全局变量不属于顶层对象的属性。

let b=1;

console.log(global.b);//undefined

const a=1;

console.log(global.a);//undefined

阮老师还介绍了一大堆,但是试验过之后,各环境下对global的支持也不尽如人意。所以顶层属性其实能不用尽量别用,感觉很麻烦。

我就是这么懒~~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息