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;

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

  • 相关阅读:
    B1031
    B1021
    B1021
    B1021
    Android 系统服务一览表
    MULTI-INTERFACE CONNECTIVITY ON ANDROID
    ConnectivityManager 确定和监控网络连接状态
    Android系统各种类型的service刨根解读
    Android Netd
    Android am 指令的使用
  • 原文地址:https://www.cnblogs.com/mxyr/p/10030814.html
Copyright © 2011-2022 走看看