Я пришел сюда с тем же вопросом, также после прочтения статьи об утечках памяти. Прочитав ответы здесь, я все еще не понимал, поэтому подумал, что поделюсь своими результатами после еще одного исследования.
В JavaScript может быть сложно понять, является ли что-то вроде .expandoProperty
частью языка или кто-то умен с именами свойств.
obj.expandoProperty
в статье об утечке памяти вполне могло бы быть obj.foo
. Суть, которую они пытаются донести с помощью «.expandoProperty», заключается в том, что свойство изначально не существовало как часть объекта.
var obj = {myProp: ''};
obj.myProp = 'foo'; //myProp is not an expando property
obj.myNewProp = 'bar'; //myNewProp is an expando property
Добавить в список: .expando
- это свойство только для IE, которое «устанавливает или извлекает значение, указывающее, могут ли произвольные переменные быть созданы внутри объекта». Статья MSDN
См. Также обобщенное обсуждение свойств расширения в StackOverflow здесь .