gpt4 book ai didi

javascript - 为什么数组不能用文字添加原型(prototype)?

转载 作者:行者123 更新时间:2023-12-02 15:54:23 25 4
gpt4 key购买 nike

var a=[1,2,3,4]

function Demo(){}

Array.prototype={
foo:function(){
alert(1)
}
}//a.foo is not a function

Array.prototype.foo=function(){
alert(1)
}//alert(1)

a.foo()

Demo.prototype={
foo:function(){
alert(1)
}
}

var b=new Demo()
b.foo()//alert(1)

为什么Array不能添加带有文字的原型(prototype)?另外,为什么当我使用构造函数时它会起作用?

这是一个例子: https://jsbin.com/zowalu/edit?js,console

最佳答案

您无法替换 Array.prototype 对象(这就是您在第一个示例中尝试执行的操作),因为 Array.prototype 是只读的。

您的第二个示例之所以有效,是因为您只是向原型(prototype)添加了一个 key ,而不是替换它。

第三个示例有效,因为 Demo 是您设计的一个对象,因此原型(prototype)不是只读的。

关于javascript - 为什么数组不能用文字添加原型(prototype)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31666345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com