成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

javascript中this指向問題總結(jié)

worldligang / 386人閱讀

摘要:文章目的是總結(jié)下這個(gè)事情,如果沒有考慮周全,遺漏某一條,請(qǐng)過路的留言寫,我在補(bǔ)上。類的實(shí)例在函數(shù)中的一般指向和中括號(hào)里面的第一個(gè)參數(shù)是誰就指向誰。輸出說明指向的是輸出,說明指向的是箭頭函數(shù)中的,就是定義是所在的對(duì)象,而不是使用時(shí)所在的對(duì)象

文章目的是總結(jié)下這個(gè)事情,如果沒有考慮周全,遺漏某一條,請(qǐng)過路的留言寫,我在補(bǔ)上。

在自制行函數(shù)中,this --> window

    let obj = {
        name: "fung",
        getName: ~function(params) {
            // this-->window
           console.log(this); //window
        }() 
    };

給元素的某個(gè)事件綁定方法,當(dāng)事件觸發(fā)執(zhí)行,對(duì)應(yīng)方法的時(shí)候,方法中的this一般是指當(dāng)前操作的元素本身。

let box = document.getElementById("box");
box.onclick = function () {
    // this -- > box
    console.log("box", this); //box對(duì)象
}

當(dāng)方法執(zhí)行時(shí),看方法的前面有沒有點(diǎn),如果有點(diǎn),點(diǎn)前面是誰,this就是指向誰;如果沒有點(diǎn)一般都是指向window

var objTest = {
    name: "fung",
    getName: function () {
        console.log("objTest", this);
    },
    timeout: function(params) {
        setTimeout(function(){
            //this --> window
            console.log("setTimeout", this);
        }, 1000);
    }
};
objTest.getName(); //this --> objTest
let fn = objTest.getName;
fn(); // this --> window

在構(gòu)造函數(shù)模式中,方法體中出現(xiàn)的this是當(dāng)前類的一個(gè)實(shí)例。

function Person(name, age, sex) {
    //this --> person(Person類的實(shí)例person)
    this.name = name;
    this.age = age;
    this.sex = sex;
    console.log("Person", this);
}
let person = new Person("fung", 19, "femail");

在setTimeout函數(shù)中的this一般指向window

objTest.timeout();

call和apply中括號(hào)里面的第一個(gè)參數(shù)是誰this就指向誰。

let oldObjec = {
    name: "oldObjec",
    age: 1000,
    getName: function() {
        console.log("oldObjec getName", this.name);
    }
};
let newObjec = {
    name: "newObjec",
    age: 00,
    getAge: function () {
        console.log("newObjec getAge", this.age);
    }
};
let name = "window";
oldObjec.getName.call(newObjec); //輸出newObjec,說明this指向的是newObjec
newObjec.getAge.call(oldObjec);//輸出1000, 說明this指向的是oldObject

箭頭函數(shù)中的this,就是定義是所在的對(duì)象,而不是使用時(shí)所在的對(duì)象

var age = 111;
function getName () {
setTimeout(() => {
        console.log("arrowObjec getName", this.age);
    }, 1000);
}
getName.call({age: 2000});

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/98863.html

相關(guān)文章

  • ES5 call,apply,bind方法總結(jié)(包括理解this指向問題

    總結(jié)call,apply,bind方法的理解使用和區(qū)別。 call,apply,bind這三個(gè)方法在JavaScript中是用來改變函數(shù)調(diào)用的this指向。那么改變函數(shù)this指向有什么用呢?我們先來看一段代碼 var a= { name:harden, fn:function () { console.log(this.name); } } var b =...

    nanchen2251 評(píng)論0 收藏0
  • javascript this的學(xué)習(xí)總結(jié)

    摘要:例如通過,調(diào)用時(shí)強(qiáng)制把它的綁定到上。箭頭函數(shù)問題箭頭函數(shù)體內(nèi)的對(duì)象就是定義時(shí)所在的對(duì)象,而不是使用時(shí)所在的對(duì)象,固定不變。 剛?cè)腴Tjavascript,關(guān)于this的學(xué)習(xí),花了自己挺多的時(shí)間,做了比較多的功課,看了一篇又一篇的文章,也看了一些書籍,今天就結(jié)合看的那些東西總結(jié)下自己所學(xué)到的東西,方便留著以后回看,進(jìn)一步的學(xué)習(xí),這篇文章會(huì)不斷的更新,不斷的更新自己的想法,現(xiàn)在還是一個(gè)入門不...

    A Loity 評(píng)論0 收藏0
  • JavaScriptthis總結(jié)

    摘要:普通函數(shù)調(diào)用函數(shù)在全局作用域下運(yùn)行在非嚴(yán)格模式下,指向全局對(duì)象,在嚴(yán)格模式下,會(huì)變成。使用來調(diào)用函數(shù),或者說發(fā)生構(gòu)造函數(shù)調(diào)用時(shí),會(huì)自動(dòng)執(zhí)行下面的操作。即構(gòu)造函數(shù)的指向它實(shí)例化出來的對(duì)象。 JavaScript中的this實(shí)際上是在函數(shù)被調(diào)用時(shí)發(fā)生的綁定,它指向什么完全取決于函數(shù)在哪里被調(diào)用。 先來列舉一下都有哪些函數(shù)調(diào)用方式: 普通函數(shù)調(diào)用 對(duì)象方法調(diào)用 call()、apply()...

    ghnor 評(píng)論0 收藏0
  • JavaScript面向?qū)ο蟪绦蛟O(shè)計(jì)

    摘要:構(gòu)造函數(shù)模式這種方法創(chuàng)建自定義的構(gòu)造函數(shù),從而自定義對(duì)象類型的屬性和方法。借用構(gòu)造函數(shù)在子類型構(gòu)造函數(shù)的內(nèi)部調(diào)用超類型構(gòu)造函數(shù),通過和方法來實(shí)現(xiàn)。 JavaScript中沒有類的概念,它不是嚴(yán)格意義上的面向?qū)ο笳Z言,而是基于對(duì)象(Object-based)的編程語言。下面是讀《JavaScript高級(jí)程序設(shè)計(jì)(第三版)》的學(xué)習(xí)筆記,總結(jié)一些常用的創(chuàng)建對(duì)象和繼承的方法。 一、創(chuàng)建對(duì)象 1...

    wfc_666 評(píng)論0 收藏0
  • 你不知道的this

    摘要:本內(nèi)容來自你不知道的上卷,做了簡(jiǎn)單的總結(jié)。如果不使用這段代碼該如何寫呢那就需要給和顯示傳入一個(gè)上下文對(duì)象對(duì)比發(fā)現(xiàn)提供了額一種更優(yōu)雅的方式來隱式傳遞一個(gè)對(duì)象引用。四總結(jié)隨著你使用的模式越來越復(fù)雜,顯式傳遞上下文對(duì)象會(huì)讓代碼變得越來越混亂。 本內(nèi)容來自《你不知道的JavaScript(上卷)》,做了簡(jiǎn)單的總結(jié)。 this關(guān)鍵字是javascript最復(fù)雜的機(jī)制之一。它是一個(gè)很特別的關(guān)鍵字,...

    terasum 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<