Javascript 为什么;String.prototype={}";韩元';不行?
我用javascript编写了以下代码:Javascript 为什么;String.prototype={}";韩元';不行?,javascript,string,prototype-programming,Javascript,String,Prototype Programming,我用javascript编写了以下代码: String.prototype = { a : function() { alert('a'); } }; var s = "s"; s.a(); 我希望它发出警报a,但它报告: s.a is not a function 为什么?您似乎正在用您的对象替换整个原型对象。我甚至怀疑这会起作用,更不用说你的意图了 prototype属性不可写,因此对该属性的赋值会自动失败(@Frédéric Hamidi) 不过,使用常规语法是可行的
String.prototype = {
a : function() {
alert('a');
}
};
var s = "s";
s.a();
我希望它发出警报a
,但它报告:
s.a is not a function
为什么?您似乎正在用您的对象替换整个
原型
对象。我甚至怀疑这会起作用,更不用说你的意图了
prototype
属性不可写,因此对该属性的赋值会自动失败(@Frédéric Hamidi)
不过,使用常规语法是可行的:
String.prototype.a = function() {
alert('a');
};
var s = "s";
s.a();
你必须这样写:
String.prototype.a = function(){
alert("a");
};
var s = "s";
s.a();
fiddle:+1,
prototype
属性是不可写的(Object.getOwnPropertyDescriptor(字符串,“prototype”)。可写的
是false
),因此对该属性的赋值会自动失败(但会在严格模式下发出噪音)。