簡體   English   中英

如何在對象內部調用函數

[英]How to call a function inside an object

我大約一個星期前才開始學習Javascript,但遇到了一些絆腳石。 在提供的鏈接中,無論出於何種原因,我都無法調用對象內部的函數。 有什么想法我做錯了嗎? 任何建議都很好。

JavaScript代碼

您正在調用該函數,但該函數返回未定義。 要注意的是, this有不同的含義叫不同的背景下, testObjthis == testObj ,因此this.word是不確定的。

也許這個小提琴會有所幫助。

var testObj = {
   bar: function(){
console.log(this.word)
}
}

當您調用testObj.bar時,此處指的是testObj,而testObj沒有屬性字

var testObj = {
   bar: function(){
console.log(this.word)
}.bind(this)
}

使用.bind(this)或.bind(window)

因為范圍已更改。

在JavaScript中,范圍是指代碼的當前上下文。 范圍可以是全局或本地定義的。 了解JavaScript范圍是編寫防彈代碼並成為更好的開發人員的關鍵。 您將了解變量/函數可在何處訪問,能夠更改代碼上下文的范圍,能夠編寫更快和更可維護的代碼以及更快地進行調試。

因此正確的代碼是:

var that = this;
var testObject = { bar: function() { return that.word }}

在您的解決方案中,“ this”是“ window”對象。 因此,您還可以編寫以下代碼:

var testObject = { bar: function() { return window.word }}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM