var obj={     foo: function () {         console.log(this);     } }; obj.foo();//this指向obj-- 对象属性调用模式 (obj.foo=obj.foo)();//this指向window-- 函数调用模式 (obj.foo=obj.foo)返回的是函数体: function () {     console.log(this); } (false||obj.foo)();//this指向window-- 同上 (function () {     var a= function () {         return 10;     };     window.a= function () {         return new a();     };     console.log(a());//输出10 })(); 以上代码等价于 window.a= function () {     return new a(); }; (function () {     var a= function () {         return 10;     };     console.log(a());//输出10 })(); 立即执行函数是一个作用域,window对象的a不影响立即执行内的函数调用 var a= function () {     return 10; }; window.a= function () {     return new a(); }; console.log(a()); 首先,第一个匿名函数表达式指定给变量a,然后又用window.a定义,那么前面的a就被覆盖了。所以此时上面一大串就是 window.a= function () {     return new a(); }; console.log(a()); 当调用a时a(),a对象的实例化引起递归(这个不确定。。。。)
点赞 1

相关推荐

仁者伍敌:难怪小公司那么挑剔,让你们这些大佬把位置拿了
点赞 评论 收藏
分享
牛客583549203号:腾讯还好,况且实习而已,实习生流动性很大,属于正常现象,记得和HR委婉解释
点赞 评论 收藏
分享
06-04 18:37
门头沟学院 Java
勇敢的ssr求对象:前面看的有点奔溃,看到只有你是真玩啊,忍不住笑出了声😂
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务