VUE中寫原生js時this指向問題
1.在原生js中使用vue的方法的問題
在vue寫原生函式的時候使用this.函式名,是找不到在methods中定義的方法的,因為這個時候this指向的是window而不是vue
在這裡拿js中的定時器函式做例項:
普通寫法:
setTimeout(function(){
console.log(this)
},1000)
可以看到以下輸出的是window
ES6寫法:
setTimeout(() =>{
console.log(this)
},1000 * 20)
以下輸出的是VUE
所以要想在原生js函式中呼叫vue中定義的函式時需要使用ES6的寫法。
相關推薦
VUE中寫原生js時this指向問題
1.在原生js中使用vue的方法的問題 在vue寫原生函式的時候使用this.函式名,是找不到在methods中定義的方法的,因為這個時候this指向的是window而不是vue 在這裡拿js中的定時器函式做例項: 普通寫法: setTimeout(func
原生js的this指向
檢視JavaScript中this指向的物件,this指向的一句話法則: 永遠指向其所在函式的所有者如果沒有所有者時,指向window。 理解this的要點:關鍵在於將函式與函式名分開看待。同一個函式,在不同的執行方法下,會有不同的效果。 廢話不多說,多說的都是廢話,不要看,這一句也是廢話,哈哈,我真能
js中寫html程式碼時引號問題
html中寫js程式碼: 正常寫法(一般情況下): <input value="" type="button" onclick="alert('OK');" /> 其實更好的寫法: <input value="Test" type="button"
VUE中引入第三方JS
OS 對象 oca 騰訊 地圖 assets 引入 vue bsp 1、若第三方中的對象或者方法,已經暴露出來(export),則可以直接引用,比如: import ‘../../../common/geolocation.min.js‘; // 引入騰訊地圖前端定位組
Vue中使用mescroll.js實現下拉刷新
pla play 中修改 隱藏 data warn none rec hda 第一步:引入js和css文件 1 <link rel="stylesheet" href="static/mescroll/mescroll.min.css"> 2 <scri
vue中config/index.js:配置的詳細理解
github ase child top 提示 調用 base 取出 source 當我們需要和後臺分離部署的時候,必須配置config/index.js: 用vue-cli 自動構建的目錄裏面 (環境變量及其基本變量的配置) 1 var path = require
vue中使用raphael.js實現地圖繪制
proc -c ima order ont .text mov += svg 一、效果圖 二、在vue中引入raphael.js npm i raphael -S 三、封裝一個名為StreetMap的組件,代碼如下 1 <template> 2
在VUE中使用QRCode.js
strong select rom 依賴 str 生成 color imp 不起作用 什麽是QRCode.js QRCode.js是用於制作二維碼的JavaScript庫。QRCode.js支持在HTM中使用HTML5畫布和表格標簽進行交叉瀏覽。QRCode.js沒有依賴關
js改變this指向的方法:call apply bind
在函式中使用this function foo(c, d) { return this.a + this.b + c + d } global.a = 3 global.b = 4 // foo執行時,this沒有明確的指向,預設指向全域性物件global //
測試引入的js檔案,和直接在頁面中寫的js程式碼執行的順序,順便還有個疑問(即JavaScript中變數宣告有var和沒var的區別)
測試引入的js檔案,和直接在頁面中寫的js程式碼執行的順序,順便還有個疑問(即JavaScript中變數宣告有var和沒var的區別),有時間再倒回來理解這個問題 <!DOCTYPE html> <html> <head> <meta charset
Vue中配合clipboard.js實現點選按鈕複製內容到剪下板
需求設定 點選某個按鈕,將設定的目標內容(例如下載連結地址)複製到剪下板,可以在電腦上任何地方貼上 不使用任何框架和使用Flash,以最小的程式碼實現該功能,並能相容所有主流瀏覽器 外掛選擇 clipboard.js: * `NPM方式`:`np
面試官問:JS的this指向
面試官經常會出很多考題,都會考察this指向,也是看候選人對JS基礎知識是否紮實。 附上之前寫文章寫過的一段話:已經有很多關於this的文章,為什麼自己還要寫一遍呢。學習就好比是座大山,人們沿著不同的路登山,分享著自己看到的風景。你不一定能看到別人看到的風景,體會到別人的心情。只有自己去登山,才能看到
vue中v-for迴圈時只處理事件觸發項的內容(僅一項)
關於怎樣處理vue中v-for迴圈時對迴圈內容中單獨的一項的事件處理有如下方案:(1)獲取v-for迴圈內容中的下標值(val為navContent中的內容,index為下標) <p v-for="(val,index) in navContent" cl
跨站請求資料jsonp手寫原生js程式碼實現
JSONP --來自百度百科JSONP(JSON with Padding)是JSON的一種“使用模式”,可用於解決主流瀏覽器的跨域資料訪問的問題。由於同源策略,一般來說位於 server1.example.com 的網頁無法與不是 server1.example.com的伺
關於面試中的原生js實現事件代理和事件模型和事件廣播的學習
這也是看了網上一篇面試題所以想整理下,順便對自己學習過的東西重新理解鞏固下 在看事件代理之前,我們先來重溫下事件,在與瀏覽器進行互動的時候瀏覽器會觸發各種事件,比如當我們開啟某一個網頁的時候,瀏覽器載入完成了這個網頁,就會觸發一個load事件,當我們點選頁面中的某一個地方,
1.事件委託的原理以及優缺點 2. 手寫原生js實現事件代理,並要求相容瀏覽器
Q:事件的委託(代理 Delegated Events)的原理以及優缺點 A:委託(代理)事件是那些被繫結到父級元素的事件,但是隻有當滿足一定匹配條件時才會被挪。這是靠事件的冒泡機制來實現的, 優點是: (1)可以大量節省記憶體佔用,減少事件註冊,比如在table上
mybatis中寫sql語句時需要轉義的字元
mybatis配置檔案,sql語句中含有轉義字元: 錯誤語句: DATE_SUB(CURDATE(), INTERVAL 3 DAY) <= DATE(a.create_date) 錯誤資訊: Caused by: org.xml.sax.
js-淺析this指向
在理解this的繫結過程之前,首先要理解呼叫位置:呼叫位置就是函式在程式碼中被呼叫的位置(而不是宣告的位置)。對於正常的函式呼叫,this的繫結分為以下幾種: 1. 預設繫結 如果函式是在全域性上直接使用不帶任何修飾的函式引用進行呼叫,此時只
(vue.js)vue中引用了別的元件 ,如何使this指向Vue物件
Vue中引用了別的元件 ,如何使this指向Vue物件 今天學習Vue元件傳值, 通過建立Vue例項, 廣播和監聽實現傳值, 但是傳值之後無法直接將得到的值應用到Vue物件, 因為這相當於引用改了別的元件, this指向發生改變,所以通過以下辦法解決。 var _this
vue.js如何寫一個簡單的原生js模組,瀏覽器中的表現如何?
請點選此處輸入圖片描述瀏覽器正在逐步的支援原生JavaScript模組。Safari和Chrome的最新版本已經支援它們了,Firefox和Edge也將很快推出。如果您是一個vue.js使用者,那關於JavaScript模組一個很酷的事就是他們允許您編寫您的元件到自己的檔案中