美文网首页
一道比较有意思的题目

一道比较有意思的题目

作者: 小强不是蟑螂啊 | 来源:发表于2019-05-09 20:51 被阅读0次
function Foo() { 
    getName = function () {
      alert (1); 
    }; 
    return this; 
  } 
Foo.getName = function () { 
  alert (2);
};
Foo.prototype.getName = function () {
  alert (3);
}; 
var getName = function () { 
  alert (4);
};
function getName() {
  alert (5);
}

//Foo.getName(); getName(); Foo().getName(); getName();  //2  4 1 1
//new Foo.getName(); new Foo().getName(); new new Foo().getName(); //2 3 3
由于变量提升,上面可以改成这样
function Foo() { 
    getName = function () {
      alert (1); 
    }; 
    return this; 
  } 
Foo.getName = function () { 
  alert (2);
};
Foo.prototype.getName = function () {
  alert (3);
};
function getName() {
  alert (5);
}
var getName = function () { 
  alert (4);
};
答案记录:
1 Foo.getName();//2
因为函数Foo的属性getName是一个函数,函数内alert(2)
2 getName(); //4
getName函数提升,最后执行的是var getName = function () {  alert (4);}
3 Foo().getName(); //1
Foo函数执行,Foo函数中的getName其实就指向全局的getName,被改为alert(1),然后返回的this,指向全局对象,最后返回的是window.getName()或者getName();因为被改为alert(1),所以结果是1
4 getName() //1
上面getName函数已经被改为alert(1);所以结果为1
5 new Foo.getName() //2
当new 与右边的函数紧挨着,函数没有(),这是.的优先级是大于new的,即等于new (Foo.getName())
6 new Foo().getName() //3
当new 和()相邻,其优先级就大于.等于(new Foo()).getName()
7 new new Foo().getName() //3
根据5和6,等于new ((new Foo()).getname())

相关文章

  • 一道比较有意思的题目

  • 一道有意思的题目

    题目是这样说的: 连续掷一个质地均匀的硬币,直到第一次出现连续两次正面为止。问恰好掷n次的概率是多少。 先看样本空...

  • 从7块3毛5说起

    1989年荷兰中学数学奥林匹克竞赛中有一道关于家庭妇男的题目,在奥数题中算是比较有意思的。题目是这样描述的: 有一...

  • 蓝桥杯校内模拟赛

    真的尬,2020年蓝桥杯模拟赛忘了,搞了几把lol 上个厕所,同学提醒时间不多了,唯一一道比较有意思的题目,放下思...

  • 一道教学题目的比较思考

    本周数学教研由一位我们年段优秀的数学教师进行授课,对这节课中的一个环节有些自己的感想体会。 一、课堂再现 本节课是...

  • 寻找丑数

    算法题:寻找丑数 这是一道在订阅的blog上看到的题目,觉得比较有意思,就动手做了一下。 何为丑数? 丑数(Ugl...

  • 面试官:你知道什么叫作Java类吗?sorry sir,我不知道

    最近在刷面试题的时候遇到了一道比较有意思的题目。具体如下 为了更好的弄明白其深层原理,我不得重新回顾整理了下Jav...

  • 有意思的一道js题目(原型相关)

    题目如下: 首先分析一下题目 getName分别以变量,和函数变量的形式声明,涉及到变量声明提升。因此实际执行是 ...

  • 一道有意思的面试题目

    (一)背景介绍 经常遇到产品同学更改需求的情况,在产品同学看来这是一个小小的改动而已,而且往往会理直气壮地说:这么...

  • 中山大学面试题目重解

    在中山大学面试的时候有一道题目比较有意思:失败固然痛苦,但更糟糕的是从未去尝试是西奥多·罗斯福的名言,你如何看待失...

网友评论

      本文标题:一道比较有意思的题目

      本文链接:https://www.haomeiwen.com/subject/fjngoqtx.html