簡體   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