摘要:看如下對(duì)象定義這樣能正常調(diào)用下面的調(diào)用會(huì)出錯(cuò)因?yàn)?,指向已?jīng)改變,正確的方式如下所有函數(shù)都有其特殊的變量,如下面的調(diào)用會(huì)產(chǎn)生一個(gè)錯(cuò)誤解決方案一將保存在不同的變量中解決方案二利用的第二個(gè)參數(shù),它可以給指定一個(gè)值
看如下對(duì)象定義:
"use strict" var jane = { name : ‘Jane’, display : function(){ retrun "Person named " + this.name; } };這樣能正常調(diào)用
下面的調(diào)用會(huì)出錯(cuò):jane.display();
因?yàn)?,this指向已經(jīng)改變,正確的方式如下:var func = jane.display;
func()
TypeError: Cannot read property "name" of undefined
所有函數(shù)都有其特殊的this變量,如下面的forEachvar func2 = jane.display.bind(jane);
func2()
"Penson named Jane"
var jane = { name : "Jane", friends: ["Tarzan", "Cheeta"], sayHiToFriends: function(){ "use strict"; this.friends.forEach(function(friend) { // "this" is undefined here console.log(this.name + " says hi to "+ friend); }); } }調(diào)用sayHiToFriends會(huì)產(chǎn)生一個(gè)錯(cuò)誤:
解決方案一:將this保存在不同的變量中jane.sayHiToFriends()
TypeError: Cannot read property "name" of undefined
var jane = { name : "Jane", friends: ["Tarzan", "Cheeta"], sayHiToFriends: function(){ "use strict"; var that = this; this.friends.forEach(function(friend) { console.log(that.name + " says hi to "+ friend); }); } }解決方案二:利用forEach的第二個(gè)參數(shù),它可以給this指定一個(gè)值
var jane = { name : "Jane", friends: ["Tarzan", "Cheeta"], sayHiToFriends: function(){ "use strict"; this.friends.forEach(function(friend) { console.log(this.name + " says hi to "+ friend); }, this); } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/79073.html
摘要:要達(dá)到想要的效果正確的做法是即用來產(chǎn)生一個(gè)立即作用域,保證回調(diào)函數(shù)執(zhí)行的時(shí)候最近的原型作用域的就是當(dāng)時(shí)循環(huán)的。判斷數(shù)組中是否存在滿足條件的項(xiàng),只要有一項(xiàng)滿足條件,就會(huì)返回。 之前常常因?yàn)椴蛔⒁?,?xí)慣用寫PHP或者Java的方式來寫nodejs,產(chǎn)生了了一些錯(cuò)誤,這里總結(jié)一些小小的trick,以便于展示nodejs的不同,和平時(shí)需要注意的地方。 變量提升 var variable = g...
摘要:有談?wù)劽嬖嚺c面試題對(duì)于前端面試的一些看法。動(dòng)態(tài)規(guī)劃算法的思想及實(shí)現(xiàn)方法幫大家理清動(dòng)態(tài)規(guī)劃的解決思路以及原理方法前端經(jīng)典面試題從輸入到頁面加載發(fā)生了什么這是一篇開發(fā)的科普類文章,涉及到優(yōu)化等多個(gè)方面。極客學(xué)院前端練習(xí)題道練習(xí)題,面試季練練手。 由數(shù)據(jù)綁定和排序引入的幾個(gè) JavaScript 知識(shí)點(diǎn) 在 JavaScript 的數(shù)據(jù)綁定和做簡(jiǎn)單的表格排序中遇到的幾個(gè)知識(shí)點(diǎn) [[JS 基礎(chǔ)...
摘要:系列文章的人懶事多,最近翻多寫少啊。不過當(dāng)我們調(diào)試我們自己的腳本的時(shí)候也會(huì)一不小心跳到這些文件中,引發(fā)額外的調(diào)試任務(wù)。 系列文章的Github Repo人懶事多,最近翻多寫少啊。原文地址這里 ‘debugger;’ 除了console.log,debugger就是另一個(gè)我很喜歡的快速調(diào)試的工具,將debugger加入代碼之后,Chrome會(huì)自動(dòng)在插入它的地方停止,很像C或者Java里面...
摘要:沒有安裝全局某個(gè)項(xiàng)目不影響該命令的使用。該標(biāo)志會(huì)安裝,忽略。這會(huì)確保開發(fā)所使用的工具及不會(huì)進(jìn)入生產(chǎn)環(huán)境。結(jié)果就是,發(fā)布項(xiàng)目時(shí),不得不審查兩個(gè)文件是否同步,防止敏感信息的泄露。確保更改默認(rèn)的用戶名,作為用戶名環(huán)境變量的值。 本文轉(zhuǎn)載自:眾成翻譯譯者:文藺鏈接:http://www.zcfy.cc/article/1206原文:https://nodesource.com/blog/ele...
閱讀 1647·2021-10-27 14:13
閱讀 1888·2021-10-11 10:59
閱讀 3387·2021-09-24 10:26
閱讀 1940·2019-08-30 12:48
閱讀 3049·2019-08-30 12:46
閱讀 2047·2019-08-30 11:16
閱讀 1432·2019-08-30 10:48
閱讀 2752·2019-08-29 16:54