我在javascript中编写了这段代码:
String.prototype = {
a : function() {
alert('a');
}
};
var s = "s";
s.a();
我希望它会提醒a
,但会报告:
s.a is not a function
为什么?
答案 0 :(得分:10)
您似乎正在用您的对象替换prototype
的整个 String
对象。我怀疑这甚至会起作用,更别说是你的意图了。
prototype
属性不可写,因此该属性的分配将无声地失败( @FrédéricHamidi)。
使用常规语法有效:
String.prototype.a = function() {
alert('a');
};
var s = "s";
s.a();
答案 1 :(得分:4)
你必须这样写:
String.prototype.a = function(){
alert("a");
};
var s = "s";
s.a();