【发布时间】:2018-08-09 02:03:48
【问题描述】:
我是 Javascript 语言的新手,最近我开始研究 js 原型,并被以下代码中的一些奇怪输出弄糊涂了:
Array.prototype.print = function() {
console.log(this)
}
[1, 2, 3, 4].print();
谁能告诉我为什么会返回
无法读取未定义的属性“打印”
如果我声明var array = [1, 2, 3, 4] 然后通过array.print() 调用打印函数,它工作正常,所以我很困惑它有什么不同?
Array.prototype.print = function() {
console.log(this)
}
var array = [1, 2, 3, 4]
array.print()
【问题讨论】:
-
您是否同时运行两个代码块?当我单独运行每个块时,它对我有用,这表明存在竞争条件。确保第一个函数在调用最后一行之前已经运行。
标签: javascript