setInterval和setTImeout中的this指向問題
問題:在setInterval和setTimeout中傳入函數時,函數中的this會指向window對象
解決方法:
1. 將當前對象的this存為一個變量,定時器內的函數利用閉包來訪問這個變量。var self = this;
2.利用bind綁定
setTimeout(function(){ console.log(this.num); }.bind(this), 1000) //利用bind()將this綁定到這個函數上
3. 箭頭函數
setTimeout(() => { console.log(this.num); }, 1000) //箭頭函數中的this總是指向外層調用者
參考:
http://www.cnblogs.com/zsqos/p/6188835.html
setInterval和setTImeout中的this指向問題
相關推薦
關於setInterval和setTImeout中的this指向問題
1. 問題描述 前些天在練習寫一個小例子的時候用到了定時器,發現在setInterval和setTimeout中傳入函式時,函式中的this會指向window物件,如下例: var num = 0; function Obj (){ this.num =
setInterval和setTImeout中的this指向問題
tin 訪問 變量 out cti blog 問題: fun 調用 問題:在setInterval和setTimeout中傳入函數時,函數中的this會指向window對象 解決方法: 1. 將當前對象的this存為一個變量,定時器內的函數利用閉包來訪問這個變量。var s
JavaScript中的setInterval()和setTimeout()
1.setlnterval() setInterval() 方法可按照指定的週期(以毫秒計)來呼叫函式或計算表示式。 setInterval() 方法會不停地呼叫函式,直到 clearInterval() 被呼叫或視窗被關閉。由 setInterval() 返回的 ID 值可用作
淺談箭頭函數和setTimeout中的this
同學 答案 .... col 箭頭 function 一個 個人喜歡 文章 箭頭函數會改變this的指向,這個大家看文檔都看到過,可是有沒有具體理解呢?我發現自己應該可能大概是......emmmm,然後我整理了一遍,加強一下概念吧順帶再講一下setTimeout這個函數改
JavaScript函數setInterval()和setTimeout()正確的寫法
ava 改進 .cn tint 程序 寫法 set archive 編寫 一、常規寫法 1.1 不傳參數 function a (x, y) { var i = 0; var b = function(){ console.log(
vue使用axios中 this 指向問題
name use .post 指向 sub hack undefined 之前 form 1.解決辦法 在vue中使用axios做網絡請求的時候,會遇到this不指向vue,而為undefined,可以使用箭頭函數"=>"來解決。如下: metho
setInterval 和 setTimeout 用法
setInterval 和 setTisetInterval 定時器,開始執行後,每間隔指定時間執行一次,除非清除定時器用法: setInterval(function(){ 方法... },1000);// 間隔時間 setTimeout 是在指定的時間後,執行該事件用法: setTimeout(fun
axios中this指向為undefined的問題
判斷 沒有 fine TE nbsp 進行 解決 In 保存 今天遇到的一個坑. 需要在得到接口返回的值時根據這個值進行判斷跳轉 想當然的想要使用this.$router.push("/verifynumber");來進行跳轉,但是發現並沒有什麽用 console.lo
React中this指向常用的2種修正方式
head bin fine function reac round component 需要 ike 一、使用bind方法(構造函數內綁定) <!DOCTYPE html> <html> <head> <meta ch
javascript中this指向的理解(轉載)
JS中的this指向一直是個讓人頭疼的問題,想當初我學的是天昏地暗,查了好多資料,看的頭都大了,跟他大戰了那麼多回合,終於把它搞定個七八分,其實往往都是我們複雜化了,現在就讓大家輕鬆看懂this的指向,我會分以下幾種情況來說。 this的指向: &nb
js中this指向的三種情況
js中this指向的幾種情況 一、全域性作用域或者普通函式自執行中this指向全域性物件window //全域性作用域 console.log(this);//Window //普通函式 function fn(){ console.log(this); //Wi
setInterval和setTimeout的區別以及setInterval越來越快問題的解決方法
setInterval()和setTimeout()方法都是js原生的定時方法,當然它們兩個的作用也是不同的,並且最近在做上下滾動公告欄的時候,發現了setInterval()非常令人抓狂的問題,那就是用setInterval()做的定時滾動會隨著瀏覽器頁面切換變得無法控制!為什麼會說無法控制呢,因為在切換頁
js this指向和如何修改this 指向
this是js中的一個關鍵字,函式執行時自動生成的一個內部物件。 this 的指向在函式被定義的時候是確定不了的,只有在函式被呼叫的時候才能確定this 到底指向誰, 實際上,this 的最終指向的是呼叫這個函式的物件。 下面介紹一下幾種情況下,this的指向 1、全域性環境 全
react 中this指向問題
執行一下程式碼會報錯,就是因為this指向的問題 import React, {Component} from 'react' import { Button } from 'antd'; export default class Home extends Compone
JavaScript中this指向
JavaScript中this的四大判定: 1.預設繫結this指向window: example: function test (c){ var a = 123; function b(){
JS中this指向問題總結
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <t
js中this指向全面解析——四種繫結規則
this this指向什麼?不瞭解this時,一看到函式中有this,就以為this指的是函式自身,這是錯的!! 首先要明確: this既不指向函式自身也不指向函式的詞法作用域。 this是執行時進行繫結的,而不是在編寫時繫結,它的上下文取決於函式呼叫的各種條件。 this的繫結和函式宣
js中this指向學習總結
在面向物件的語言中(例如Java,C#等),this 含義是明確且具體的,即指向當前物件。一般在編譯期繫結。 然而js中this 是在執行期進行繫結的,這是js中this 關鍵字具備多重含義的本質原因
ES6箭頭函式修復ES5中this指向問題
長期以來,ES5中this物件一直的指向一個令人頭痛的問題,在物件方法中使用此,必須非常小心例如: class Animal { constructor(){ this.type = 'animal' } says(say){ setTim
axios跨域,及axios中this指向
安裝 npm install axios --save-dev axios 不能直接在 main.js 中引入並 Vue.use(),只能每個需要傳送請求的元件中即時引入。 兩種解決思路:一 修改原型鏈,二 axios+vuex 進行封裝 一. main.js 中