Ответ 1
toSource()
не работает в Internet Explorer или Safari. Это только Гекко. См. Внедрение метода toSource() Mozilla в Internet Explorer для альтернатив.
Я получаю "Объект не поддерживает это свойство или ошибку метода", кто-нибудь знает, почему?
У меня есть значения, подключенные к userId, fname, lname, oname, sam, hasAccess
function Employee(id, fname, lname, oname, sam, access) {
this.id = id;
this.fname = fname;
this.lname = lname;
this.oname = oname
this.sam = sam;
this.access = access;
}
var emp = new Employee(userId, fname, lname, oname, sam, hasAccess);
var jsonstuff = emp.toSource(); //Breaking here
Хотя эта ссылка говорит о возможной http://www.w3schools.com/jsref/jsref_toSource_date.asp
toSource()
не работает в Internet Explorer или Safari. Это только Гекко. См. Внедрение метода toSource() Mozilla в Internet Explorer для альтернатив.
Попробуйте вместо этого использовать JSON serializer. toSource
является специфичным для Mozilla и не поддерживается IE.
Если вы просто отлаживаете, то лучшим вариантом будет установить Firebug и использовать console.dir(emp); для печати содержимого объекта в окне консоли.
Обновление. Просто обратите внимание, что в ссылка, которую вы опубликовали, говорится: "Примечание: этот метод не работает в Internet Explorer!" И на странице MDC он говорит "Нестандартный".
Вы можете либо вызвать toString вместо, либо поставить условие, подобное этому...
var jsonstuff = (emp.toSource) ? emp.toSource() : emp.toString();
EDIT:
Так как это не работает для вас, вы можете использовать JSON.stringify()
Пока не рекомендуется (для расширения собственных объектов JS), во время разработки вы можете использовать:
Object.prototype.toSource
|| (Object.prototype.toSource = function(){return JSON.stringify(this);})
c = {a:100}
//>Object
c.toSource()
//>"{"a":100}"
ура!
Я предлагаю использовать существующую библиотеку или плагин: