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
无法用文字添加原型?另外,为什么我使用构造函数时它会起作用?
答案 0 :(得分:2)
您无法替换Array.prototype
对象(这是您在第一个示例中尝试执行的操作),因为Array.prototype
是只读的。
你的第二个例子是有效的,因为你只是在原型中添加一个键,而不是替换它。
第三个例子有效,因为Demo
是你设计的一个对象,原型不是只读的。