我试图在原型对象上定义一个不可枚举的toJSON
函数,但没有多少运气。我希望类似的在ECMAScript 5 toJSON
东西:JS非枚举函数
Object.defineProperty(obj, prop, { enumerable: false });
然而,这把它定义为不能作为一种方法来访问属性。
我希望能在一个不可枚举的方式来定义函数,因为我打算在所有基本类型的原型定义(String
,Number
,Boolean
,Array
和Object
),让我可以通过复杂对象递归地应用函数。
这里的最终目标是能够递归地嵌套集合JSON化Backbone模型/集合。
我总想我有两个主要问题:
- 是否有可能定义一个原型不可枚举的功能?如果是这样如何?
- 有没有更好的方法来JSONify嵌套骨干模型?
根据定义*的方法是对象的属性。你正在绘制一个不存在的区别。如果你希望它是非枚举的,那么很显然你正在枚举一个对象的属性。 –
是的,但是我希望它是一个非枚举属性,就像Object.defineProperty是不可枚举一样。即,在使用'for(x in obj)'时不会迭代通过' –
Right。同样,方法是引用函数的对象的属性。你拥有的代码就是你用来使属性不可枚举的东西。 –