すべてのベストプラクティスを無視して、私は好奇心のために質問するだろうという学問的な質問があります。ご存知のようにプリミティブ文字列を文字列オブジェクトの参照に変更する
は、文字列オブジェクトにカスタムプロパティを追加することができます。
var s = new String("initial string");
var s.customProperty = "Please Don't Forget about me";
はそれが可能です(新しい文字列オブジェクトを作成せずに)、文字列プリミティブこと「S」参照を変更します?
具体的には、私は(上記)「s」を変更したい、S ==「新しい文字列」ているので、まだこの変更を行った後、私はs.customPropertyはまだ文字列を指すようにしたいです - プライマリ:"私を忘れないでください"ここでも、新しい文字列オブジェクトを作成せずにこれを実現したいと思います。言い換えれば
var s = new String("initial string");
var s.customProperty = "Please Don't Forget about me";
// What code must preceed the following "if statement" in order
// for it to return "true" (giving the restrictions I described
// in the paragraphs of this post)?
if(s == "new string" && s.customProperty == "Please Don't Forget about me")
{
console.log("true");
}
else
{
console.log("false");
}
、その文字列オブジェクトに追加されたすべてのカスタムプロパティを失ったり、クローニングすることなく、文字列オブジェクトの参照ポインタを変更することは可能でしょうか?
有益な答えをありがとう。一瞬の思い。 。 。 :文字列オブジェクトは、内部スロットではなくオブジェクトプロパティに類似したものを参照すると、面白いほど柔軟性があります。 –
@LonnieBest:不変性はすべてそれを支配します:-)ステートフルインスタンスが必要な場合は、標準オブジェクトを 'toString'メソッドで使用してください。 – Bergi