文字列は、テキストを保持して操作できる最も単純なオブジェクトと見なすことができます。そのため、文字列に作用する関数は、必ずしもメソッドとしてまとめられるべきではありません。一方、javascript は主に Web プログラミング言語であり、URI を操作することは言語の文字列の非常に一般的な用途です。この場合、次のようなものlastName.encodeURIComponent()
は実際には非常に便利です。
encodeURIComponent や unescape のようなものが関数であり、String オブジェクトのメソッドではないのはなぜですか? ここで何らかの CS の原則が働いているのでしょうか、それとも言語の設計者の主観的な選択でしたか?
明らかに、文字列を操作するすべての関数が文字列オブジェクトに含まれている必要はありませんが、人々はどこでどのように線を引くかを決定するのでしょうか?