我定义了Array的原型函数,但是在调用它时给了我一个错误。



Array.prototype.bublleSort = function() {
  console.log(this)
}

[1, 23, 4].bublleSort()





控制台显示“未捕获的TypeError:无法读取未定义的属性'bublleSort'”。哪里有错?

最佳答案

您忘记了分号,因此解释器将您的代码视为:



Array.prototype.bublleSort = function() {
  console.log(this)
}[1, 23, 4].bublleSort()





它在方括号内使用逗号运算符,但函数没有4这样的属性:

Array.prototype.bublleSort = function() {
  console.log(this)
}[4].bublleSort()


简化为

<someFunction>[4].bublleSort()


但是函数没有4属性。

始终在语句的末尾放置分号-依靠自动分号插入不是很好,忘记和遇到错误太容易了。



Array.prototype.bublleSort = function() {
  console.log(this)
};
[1, 23, 4].bublleSort()

关于javascript - 我定义了Array的原型(prototype)函数,但是当我调用它时给了我一个错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54994355/

10-11 01:05