Подтвердить что ты не робот

Не работает Javascript toSource()

Я получаю "Объект не поддерживает это свойство или ошибку метода", кто-нибудь знает, почему?

У меня есть значения, подключенные к 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

4b9b3361

Ответ 2

Попробуйте вместо этого использовать JSON serializer. toSource является специфичным для Mozilla и не поддерживается IE.

Если вы просто отлаживаете, то лучшим вариантом будет установить Firebug и использовать console.dir(emp); для печати содержимого объекта в окне консоли.

Обновление. Просто обратите внимание, что в ссылка, которую вы опубликовали, говорится: "Примечание: этот метод не работает в Internet Explorer!" И на странице MDC он говорит "Нестандартный".

Ответ 3

Вы можете либо вызвать toString вместо, либо поставить условие, подобное этому...

var jsonstuff = (emp.toSource) ? emp.toSource() : emp.toString();

EDIT:

Так как это не работает для вас, вы можете использовать JSON.stringify()

Ответ 4

Пока не рекомендуется (для расширения собственных объектов JS), во время разработки вы можете использовать:

Object.prototype.toSource 
    || (Object.prototype.toSource = function(){return JSON.stringify(this);})

c = {a:100}
//>Object
c.toSource()
//>"{"a":100}"

ура!