javascript之this指向的坑
js中在用this的時候,會發現有很多莫名其妙的問題。
廢話不多說,直接上程式碼(html程式碼就不貼了):
- $(document).ready(function(){
- var arr=[{name: '張三',age:18},{name: '李四',age: 20}];
- var len=arr.length;
- var arr=this.arr;
- $("#Function").on("click",function(){
- for(var i=0;i<len;i++){
- console.log(arr[i].name)
- }
- })
})
以上程式碼執行起來為何會報錯呢? 具體報錯見下圖:
這個問題是我一個朋友提的,程式碼不多,可是問題很詭異,一點一點排查,最後才發現其實就是this的指向問題導致這個錯,前面this指向的是陣列arr,可是到click事件裡面,this指向了button。
相關推薦
javascript之this指向的坑
js中在用this的時候,會發現有很多莫名其妙的問題。 廢話不多說,直接上程式碼(html程式碼就不貼了): $(document).ready(function(){ var arr=[{name: '張三',age:18},{name: '李四'
十分鐘徹底理解javascript 的 this指向,不懂請砸店
hub 改變 alert blog var rip def 徹底 文章 函數的this指向誰,和函數在哪裏被定義的,函數在哪裏被執行的沒有半毛錢關系,只遵守下面的規律: 在非嚴格模式中: 1、自執行函數裏面,this永遠指向window; <script
javaScript之this全面解析(2)
mode undefined fin 全局對象 bar def rip 布爾 defined 在理解this的綁定過程之前,我們先來理解調用位置(不是聲明位置) ,最重要的是要分析調用棧(就是為了到達當前執行位置所調用的所有函數)。 我們關心的調用位置就在當前正在執行的函數
javaScript之this的五種情況
默認 事件處理 改變 app ont code 分析 click 函數 this一直是JavaScript研究的難題,特別是在筆試和面試中的各種程序分析問題中,也常常會被問到。下面來看一看this被運用的五中情況: (1) 純粹的函數調用 函
javascript之this
cti test b+ 全局 所在 font 基本類 true this 全局作用域的this this == window //true this.a = 8 window.a //8 一般函數的this function this
JS中的的"閉包"?深入Javascript之this
深入 中繼 ron 釋放 情況 解釋 幫助 結合 手動 看了知乎上的話題 如何才能通俗易懂的解釋javascript裏面的‘閉包’?,受到一些啟發,因此結合實例將回答中幾個精要的答案做一個簡單的分析以便加深理解。 1. "閉包就是跨作用域訪問變量。" 【示例一
javascrpt之this指向問題
window對象 嵌套 疑惑 call 保留 失去 col 它的 param 一:就近原則,this指向當前調用上下文; 也可以理解為局部變量覆蓋全局變量。 如: var foo = "foo"; var myObject = { fo
從零開始學習前端JAVASCRIPT — 11、JavaScript基礎this指向的四種情況
事件 箭頭 註意 idt 轉移 如果 箭頭函數 javascrip function JavaScript中this的四種情況(非嚴格模式) 1、當this所在函數是事件處理函數時,this指向事件源。2、當this所在函數是構造函數時,this指向new出來的
JavaScript-改變this指向
第一個 改變 win 其中 cal 什麽 fun ole 方法 一、this指向的詳解 概括:this的指向到底是指向哪裏?通常來說,只有當函數執行的時候才可以確定this指向的到底是誰,簡單的也可以這麽說:this最終指向的是那個調用它的對象。 常見的一般有以下幾種情
javascript中this指向的理解(轉載)
JS中的this指向一直是個讓人頭疼的問題,想當初我學的是天昏地暗,查了好多資料,看的頭都大了,跟他大戰了那麼多回合,終於把它搞定個七八分,其實往往都是我們複雜化了,現在就讓大家輕鬆看懂this的指向,我會分以下幾種情況來說。 this的指向: &nb
深入理解JavaScript之this全面解析
在之前的章節裡我們知道,this 是在函式執行時繫結的,它只與函式在哪被呼叫有關係 1.1 呼叫位置 在理解 this 的繫結之前,我們先理解 this
深入理解JavaScript之this的四種繫結
之前對this的四種繫結不太理解,好在瀏覽了https://www.cnblogs.com/xiaohuochai/p/5735901.html這篇博文,才得以清晰思路,接下來我再次總結this的四種繫結機制。 1 this的四種繫結機制 在JavaS
不能理解javascript的this指向哪裡的看這裡。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind https://www.cnblogs.com/cyl-record/p/3472758.html (
JavaScript之this解析
1、解析器在呼叫函式每次都會向函式內部傳遞進一個隱含的引數,這個隱含的引數就是this,this指向的是一個物件,這個物件我們稱為函式執行的上下文物件,根據函式的呼叫方式不同,this會指向不同的物件 (1)、以函式的形式呼叫時,this永遠都是window (2)、以方法的形式呼叫時,this就
深入淺出JavaScript之this
深入淺出JavaScript之this JavaScript中的this比較靈活,根據在不同環境下,或者同一個函式在不同方式呼叫下,this都有可能是不同的。但是有一個總的原則,那就是this指的是,呼叫函式的那個物件。 全域性的this(瀏覽器) 全域性作用域的this一般指向全域性物
JavaScript中this指向
JavaScript中this的四大判定: 1.預設繫結this指向window: example: function test (c){ var a = 123; function b(){
JavaScript的this指向
阮一峰前輩的JavaScript的this原理,http://www.ruanyifeng.com/blog/2018/06/javascript-this.html; JavaScript的this用法,http://www.ruanyifeng.com/blog/2010/04/using_
javascript:this指向
this常見指向問題 this的用法 1.直接在函式中使用 誰呼叫這個函式this就指向誰 2.物件中使用, 一般情況下指向該物件 3.在建構函式中使用 改變this的指向,兩種方法的作用都是相同的,傳遞的寫法不同而已。 call -- (指向誰,引數1
Javascript的this指向問題
javascript中的this指向是在函式呼叫時確定的。 (1)、this指向全域性物件window的情況 1、全域性作用域中或普通函式中 //全域性作用域 console.log(this); //非嚴格模式window,嚴格模式undefined
JavaScript中this指向問題
this是在執行時繫結的。函式呼叫方式的不同就可能使this所繫結的物件不同 一.幾種繫結規則 Ⅰ.預設繫結 一般情況下,若無其他規則出現則預設將this繫結到全域性物件上 function foo(){ var a = 3;