问答详情
源自:7-1 [JavaScript]理解闭包

照着视频“闭包-封装”这个例子,在浏览器控制台里练习,export总是会被提示“Unexpected reserved word”这个错误。

如题,大家遇到了没有

提问者:Ynimi 2015-05-14 11:36

个回答

  • Issa_Tan
    2015-05-19 21:26:11
    已采纳

    因为 export是ECMAScript 5保留的关键字

    就像var 是一个关键字一样,但export 在当前的语言版本中并没有使用,可能在未来的版本中会使用到。

    这些保留关键字包括:

    class const enum export extends import super

    你可以假设一下自己写了

    var var = {};

    会报错是自然的,但因为浏览器版本的不一致,在一些低版本的浏览器中,可能不会报错。

    把 export 改为别的,例如 myexport 就不会出错了。

    (function(){
    			var _userId = 23492;
    			var _typeId = 'item';
    			var myexport = {};
    
    			function coverter(userId){
    				return +userId;
    			}
    
    			myexport.getUserId = function(){
    				return coverter(_userId);
    			}
    			myexport.getTypeId = function(){
    				return _typeId;
    			}
    			window.myexport = myexport;
    
    		}());
    		myexport.getUserId();
    		myexport.getTypeId();
    
    		myexport._userId;
    		myexport._typeId;
    		myexport.coverter;

    你可以参考:

    Michael[tm] Smith非官方的HTML版本说明(HTML 形式的英文版 ECMAScript 5 )

    非官方版 ECMAScript5.1中文版

    官方ECMAScript语言规范(PDF下载,3.11M,查看第7.6.1.2章 Future Reserved Words)


  • Bosn
    2015-06-05 10:47:51

    赞!!!!!!