簡體   English   中英

javascript函數返回一個未定義的對象

[英]javascript function returning an undefined object

我在網上看到了這段代碼,這是它的內容。

       var shoppingcart = (function ()  {

             var _calculatePrice = function() {
                 return this.price * this.amount;
          };
          return {
              calculatePrice : _calculatePrice
           }
        })();

        var goods = {
           name: 'hammer',
           price: 199,
           amount: 2
        }
        shoppingCart.calculatePrice.call(goods)

這就是我不舒服的地方。 函數在 {calculatePrice : _calculatePrice} 中返回一個未定義的對象。 這到底是怎么工作的? 我認為只返回 _calculatePrice 不會有什么壞處

首先在第 1 行打字錯誤:將shoppingcart更改為shoppingCart

 var shoppingCart = (function() { var _calculatePrice = function() { return this.price * this.amount; }; return { calculatePrice: _calculatePrice } })(); var goods = { name: 'hammer', price: 199, amount: 2 } console.log(shoppingCart.calculatePrice.call(goods))

解釋:

返回的對象是:

{
    calculatePrice: _calculatePrice
}

它的屬性calculatePrice是變量_calculatePrice

_calculatePrice引用一個函數,該函數返回一個計算出的數字。

.call()函數可幫助您在全局范圍內調用具有引用的函數。 這就是計算函數使用this.price & this.amount

有一個錯字:你聲明了一個 var shoppingcart,然后你用 C 而不是 c 調用它shoppingCart。

嘗試將 de var 聲明更改為:var shoppingCart = ....

暫無
暫無

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

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