我用javascript编写了这段代码:

String.prototype = {
  a : function() {
    alert('a');
  }
};

var s = "s";
s.a();

我希望它提醒 a ,但它报告:
s.a is not a function

为什么?

最佳答案

您似乎正在用您的对象替换 prototype 的整个 String 对象。我怀疑这甚至会奏效,更不用说你的意图了。
prototype 属性不可写,因此对该属性的赋值会默默地失败(@Frédéric Hamidi)。

但是,使用常规语法是有效的:

String.prototype.a = function() {
  alert('a');
};

var s = "s";
s.a();

关于javascript - 为什么 "String.prototype={}"不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8613907/

10-12 12:22
查看更多