javascript函数返回一个未定义的对象

时间:2016-07-10 14:51:22

标签: javascript

我在网上看到了这个代码,这是它的内容。

OFFSET

这就是我不舒服的地方。函数在{calculatePrice:_calculatePrice}中返回一个未定义的对象。这真的有用吗?我认为只返回_calculatePrice

是没有害处的

2 个答案:

答案 0 :(得分:0)

首先是第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&amp; this.amount

答案 1 :(得分:-1)

有一个拼写错误:你宣布一个var shoppingcart,然后用C而不是c称它为shoppingCart。

尝试将de var声明更改为:var shoppingCart = ....