簡體   English   中英

Javascript:如何使用參數在函數中使用對象屬性?

[英]Javascript: How can I use object properties in functions using the parameter?

我是Java語言的初學者,我正在嘗試制作一個基於文本的游戲進行練習。 我為敵人制作了對象,如下所示:

export const spider = {
strength: 1,
health: 4,
gold: 1
};

我現在正在嘗試創建一個可以在字段中輸入名稱時搜索其統計信息的函數。 看起來像這樣:

export const findStats = (target) => {
return target.health;
}

但是,當我這樣做並對其進行測試時,我得到“未定義”。 但是,如果我將“ target.health”替換為“ spider.health”,則它可以正常工作。

當我嘗試執行findStats(“ spider”)時出現錯誤,這給了我“未定義的結果”。

任何幫助,將不勝感激。 注意:我確實到處瀏覽了該站點,但是發現線程太復雜或與我所尋找的不完全相同。 我是一個初學者,因此非常感謝您使用簡單的術語! 謝謝你們的評論!

我的問題與右邊的問題不同,因為當我嘗試使用我的代碼時,它仍然返回“未定義”。 這是我剛剛嘗試使用其他線程的代碼。 請記住,我是一個初學者,所以我可能做錯了,但是如果您能進一步幫助我會很高興。

export const findLocalStats = (target) => {
  var bar = 'strength';
  console.log(target[bar]);
}

這是我的測試命令:

expect(findLocalStats("spider")).toEqual(1);

此外,當我在編輯器中嘗試用JSFiddle編寫的代碼時,它在終端中仍然給出相同的錯誤,即“未定義”。

export function findStats(target) {
return target.strength;
}

和測試命令:

expect(findStats("spider")).toEqual(1);

以及確切的錯誤消息:

findStats()給出所需目標的統計信息。

expect(received).toEqual(expected)

Expected value to equal:
  1
Received:
  undefined

Difference:

  Comparing two different types of values. Expected number but received undefined.

抱歉,這很繁瑣。 注意2:我之前曾發布過此問題,但為了更好地解釋我的問題,我對其進行了更改,因為我仍然不明白給出的答案以及重復問題的鏈接-我已嘗試重復這些問題。 此外,我得到的副本是不同的。 它使用對象作為關鍵字,但是我想將其用作參數的輸入,以便在有意義的情況下對多個敵人使用。 謝謝!

當您像這樣調用findStats: findStats("spider")您將向函數發送一個字符串作為參數。 這就是為什么當它嘗試獲取財產健康時會說undefined的原因

您需要給函數一個蜘蛛對象的實例。 要創建實例,可以使用Object.create()方法,如var killMe = Object.create(spider) 這將基於您之前聲明的對象創建一個新對象。 然后,您可以像這樣調用函數: findStats(killMe)

您可以在此處找到示例: https//jsfiddle.net/10ex1xqt/

暫無
暫無

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

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