Función no enumerable JS

Estoy tratando de definir un no enumerabletoJSON Funciona en un objeto prototipo sin mucha suerte. Espero algo similar a ECMAScript 5toJSON:

Object.defineProperty(obj, prop, { enumerable: false });

Sin embargo, esto lo define como una propiedad a la que no se puede acceder como un método.

Esperaba poder definir la función de una manera no enumerable, como estaba planeando definir en los prototipos de todos los tipos primitivos (String, Number, Boolean, ArrayyObject), de modo que puedo aplicar recursivamente la función a través de objetos complejos.

El objetivo final aquí es poder JSONify un modelo / colección Backbone con colecciones anidadas recursivamente.

Supongo que en total tengo dos preguntas principales:

¿Es posible definir una función no enumerable en un prototipo? ¿Si es así, cómo?¿Hay una mejor manera de JSONify Backbone modelos anidados?

Respuestas a la pregunta(2)

Su respuesta a la pregunta