1

JavaScript でネイティブ文字列にゲッターを設定しようとしていますが、うまく動作しないようです。これは可能ですか?

var message = "foo";
message.__defineGetter__("length", function() {
  return 3;
});

(これはターミナルでの作業用です)

4

1 に答える 1

2

あなたの質問は少し奇妙です。関心のあるプロパティが既にアクセス可能であるのに、なぜゲッターを設定する必要があるのでしょうか?

とは言っても、JavaScript が適切に動作するためには、ECMAscript の仕様が示すとおりにする必要があるため、あるものとそうでないものがあります。文字列のlengthプロパティは不変プロパティの例ですが、ほとんどのtoString()プロパティは完全に変更可能です (非常に有害な結果をもたらします)。

したがって、本当の問題は、「ECMAscript仕様を覆す必要があることを何をしようとしているのか」です=)

于 2013-06-08T15:04:34.527 に答える