繁体   English   中英

为什么“String.prototype = {}”不起作用?

[英]Why “String.prototype={}” won't work?

我在javascript中编写了这段代码:

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

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

我希望它提醒a ,但它报告:

s.a is not a function

为什么?

您似乎正在用您的对象替换String整个 prototype对象。 我怀疑这甚至会起作用,更别说是你的意图了。

prototype属性不可写,因此对该属性的赋值无声地失败( @FrédéricHamidi )。

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

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

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

你必须这样写:

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

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

小提琴: http//jsfiddle.net/PNLxb/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM