国产欧美白嫩精品,精品思思久久99热网,亚洲国产成在线网站91,国产欧美一区二区三区户外

  • <strike id="uqc0k"></strike>
    <ul id="uqc0k"></ul>
  • <delect id="uqc0k"><s id="uqc0k"></s></delect><ul id="uqc0k"><acronym id="uqc0k"></acronym></ul>
    <center id="uqc0k"><source id="uqc0k"></source></center>
  • <strike id="uqc0k"><noscript id="uqc0k"></noscript></strike>
    <center id="uqc0k"></center>

    箭頭函數(shù)的this指向誰

    回答
    愛揚(yáng)教育

    2022-06-07

    • 相關(guān)推薦
    (1)默認(rèn)指向定義它時(shí),所處上下文的對(duì)象的this指向。即ES6箭頭函數(shù)里this的指向就是上下文里對(duì)象this指向,偶爾沒有上下文對(duì)象,this就指向window
    (2)即使是call,apply,bind等方法也不能改變箭頭函數(shù)this的指向

    擴(kuò)展資料

    一些實(shí)例加深印象
    (1)hello是全局函數(shù),沒有直接調(diào)用它的對(duì)象,也沒有使用嚴(yán)格模式,this指向window
    function hello() {
    console.log(this); // window
    }
    hello();
    (2)hello是全局函數(shù),沒有直接調(diào)用它的對(duì)象,但指定了嚴(yán)格模式('use strict'),this指向undefined
    function hello() {
    'use strict';
    console.log(this); // undefined
    }
    hello();
    (3)hello直接調(diào)用者是obj,第一個(gè)this指向obj,setTimeout里匿名函數(shù)沒有直接調(diào)用者,this指向window
    const obj = {
    num: 10,
    hello: function () {
    console.log(this); // obj
    setTimeout(function () {
    console.log(this); // window
    });
    }
    }
    obj.hello();
    (4)hello直接調(diào)用者是obj,第一個(gè)this指向obj,setTimeout箭頭函數(shù),this指向最近的函數(shù)的this指向,即也是obj
    const obj = {
    num: 10,
    hello: function () {
    console.log(this); // obj
    setTimeout(() => {
    console.log(this); // obj
    });
    }
    }
    obj.hello();
    (5)diameter是普通函數(shù),里面的this指向直接調(diào)用它的對(duì)象obj。perimeter是箭頭函數(shù),this應(yīng)該指向上下文函數(shù)this的指向,這里上下文沒有函數(shù)對(duì)象,就默認(rèn)為window,而window里面沒有radius這個(gè)屬性,就返回為NaN。
    const obj = {
    radius: 10,
    diameter() {
    return this.radius * 2
    },
    perimeter: () => 2 * Math.PI * this.radius
    }
    console.log(obj.diameter()) // 20
    console.log(obj.perimeter()) // NaN