Игнорируя все лучшие практики, у меня есть довольно академический вопрос, который я попрошу ради любопытства.Изменение примитивной строки Ссылки на строковый объект
Как вы знаете, вы можете добавить пользовательские свойства в строку Объект:
var s = new String("initial string");
var s.customProperty = "Please Don't Forget about me";
Можно (без создания нового объекта строки), чтобы изменить строку примитивно, что «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");
}
Другими словами, можно изменить референс-указатель в строку объекта без потери или клонировать все пользовательские свойства, которые были добавлены к этой строки объект?
Спасибо за информативный ответ. Быстрые мысли. , , : Объекты String были бы интереснее более гибкими, если бы они ссылались на нечто похожее на объект-свойство, а не на внутренний слот. –
@ LonnieBest: неизменность управляет всем :-) Если вы хотите экземпляры с состоянием, просто используйте стандартные объекты с методом 'toString'. – Bergi