[英]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.