zoukankan      html  css  js  c++  java
  • call()的个人理解

    先看两道道面试题

    面试题1:

    var number = 50;
    var obj = {
        number: 60,
        getNum: function() {
            var number = 70;
            return this.number;
        }
    }
    console.log(obj.getNum());
    console.log(obj.getNum.call());
    console.log(obj.getNum.call({number: 20}));

    面试题2:

    "use strict";
    var number = 50;
    var obj = {
        number: 60,
        getNum: function() {
            var number = 70;
            return this.number;
        }
    }
    console.log(obj.getNum());
    console.log(obj.getNum.call());
    console.log(obj.getNum.call({number: 20}));

    上面的两道题答案自己先想下为什么?

    举个例子

    function fn() {
        console.log(this);
    }
    fn.call(); // 普通模式下this是window,在严格模式下this是undefined
    fn.call(null); // 普通模式下this是window,在严格模式下this是null
    fn.call(undefined); // 普通模式下this是window,在严格模式下this是undefined

    现在是否就明白点了?

    下面来公布答案:

    面试题1:   60    50    20

    面试题2:   60    undefined   20;

    看过例子后应该会明白了一些吧!

  • 相关阅读:
    SpringBoot-10-之初阶整合篇(下)
    09--SpringBoot之初阶整合篇(上)
    07--SpringBoot之数据库JPA(CRUD)
    go 文件操作 io
    类型断言
    多态
    golang interface
    go strcut 封装
    go struct 抽象
    poj-3280 Cheapest Palindrome (dp)
  • 原文地址:https://www.cnblogs.com/mxyr/p/10030814.html
Copyright © 2011-2022 走看看