美文网首页
一个笔试题

一个笔试题

作者: Simon_King | 来源:发表于2019-04-03 00:19 被阅读0次

    需求:

    new Login().getUserName() 和Login().getUserName()分别返回什么?

     //定义了函数
    function getUserName() {
      return 'window.cmschina';
    }
    
    function Login() {
       //这里赋值是赋值window下的getUserName
      getUserName = function () {
        return 'cmschina';
      };
      return this; // 这里的this其实是window
    }
     // 给Login的getUserName赋值
    Login.getUserName = function () {
      return 'cms';
    };
    
     // 给Login原型添加getUserName方法
    Login.prototype.getUserName = function () {
      return 'china'
    };
    

    new Login().getUserName()
    new Login() 实例login对象,调用getUserName()方法,其实就是调用原型上的getUserName方法,所以返回值是china

    Login().getUserName()
    Login()调用,返回值是this,其实就是window,因为Login()的返回值是this,Login调用的过程会给window.getUserName 赋值匿名函数,而该函数返回值是cmschina

    相关文章

      网友评论

          本文标题:一个笔试题

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