You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript hasOwnProperty返回false问题:仅修改Payment函数输出true(Hackerrank题)

问题原因

原有实现中setAmount是绑定在每个Payment实例自身的属性,没有挂载到构造函数的原型对象Payment.prototype上,因此Payment.prototype.hasOwnProperty('setAmount')会返回false。

正确实现

只需将setAmount方法挂载到Payment.prototype上即可,修改后代码如下:

function Payment(amount) {
  this.amount = amount;
}

Payment.prototype.setAmount = function(updatedAmount) {
  return this.amount = updatedAmount;
}

注意这里不能用箭头函数定义原型方法:箭头函数没有独立的this指向,会绑定外层作用域的this,无法正确指向实例对象,因此要使用普通函数声明,功能和原有实现完全一致。

修改后运行不可编辑的测试代码,console.log会输出预期的true。

内容的提问来源于stack exchange,提问作者user14422045

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 05:36:02