随笔 - 312  文章 - 0  评论 - 2  阅读 - 11万

JS:笔试题3(this 作用域 隐式声明提升 原型 符号优先级)

考点:
this 作用域 隐式声明提升 原型 符号优先级
 
复制代码
          function Foo() {
                getName = function() {
                    console.log(1);
                }
                return this;
            }
            Foo.getName = function() {console.log(2)}
            Foo.prototype.getName = function() {console.log(3)}
            var getName = function() {console.log(4)}
            function getName() {console.log(5)}
            Foo.getName();
            getName();
            Foo().getName();
            getName();
            new Foo.getName();
            new Foo().getName();
            new new Foo().getName();
复制代码

打印结果:

2

4

1

1

2

3

3

 

理解:(若有错,请指正)

复制代码
        /*
        第一个foo.getName:打印  2

        第二个getName();函数与函数变量名相同,
        var是定义式先提升,fun是声明式;所以运行var的定义式;
        调用函数getName():打印  4

        第三个Foo().getName():先调用Foo,取成员getName,
        再调用getName:打印  1

        第四个getname(),在调用Foo()时 返回了this,指向全局;
        改变了全局变量getName 的值;再次调用getName时,
        返回的是改变了的函数;打印  1

        第五个考查了符号优先级 顺序是(new(Foo.getName)());
        先找到 Foo.getName,并创建一个新对象,再调用函数;
        打印:  2

        第六个 同上(((new Foo()).getName)());
        创建一个新对象,并调用;返回了一个函数:
            getName = function() {
                  console.log(1);
            }
            访问了一个getName成员;
            Foo.prototype.getName = function () {
                console.log(3)
            }
        F{prototype{getName = function(){console.log(3)}}}
        打印:  3

        第七个 ((new (new Foo())).getName)();
        new带参-->new无参-->访问成员getName-->调用函数
        创建一个新对象,并调用;返回了一个函数:
            getName = function() {
                  console.log(1);
            }
            创建一个新对象,在这个新创建的对象中找一个getName成员
            再调用getName函数
            打印:   3
        */
复制代码

 

posted on   香香鲲  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示