在对象中创建临时JavaScript变量

在对象中创建临时JavaScript变量,javascript,oop,Javascript,Oop,我要做的是停止显示id值。是否有一种方法可以使id变量transient。 请提供帮助如果不需要枚举此属性,则可以使用属性: 函数播放器(名称) { 这个。_name=name; Object.defineProperty(这个“.\u id”{ 可枚举:false }); }; var newUnitName=“Foo”; var newPlayer=新玩家(newUnitName); 警报(JSON.stringify(newPlayer))每个对象都有一个方法to

我要做的是停止显示id值。是否有一种方法可以使id变量transient。
请提供帮助

如果不需要枚举此属性,则可以使用属性:

函数播放器(名称)
{            
这个。_name=name;
Object.defineProperty(这个“.\u id”{
可枚举:false
});
};
var newUnitName=“Foo”;
var newPlayer=新玩家(newUnitName);

警报(JSON.stringify(newPlayer))每个对象都有一个方法
toJSON()
,当应该使用
JSON.stringify()
序列化对象时,会调用该方法

从JSON.stringify()开始:

如果正在字符串化的对象具有名为
toJSON
的属性,其值 是一个函数,则
toJSON()
方法自定义JSON 字符串化行为:不是序列化对象,而是 调用时,
toJSON()
方法返回的值将被序列化


以下示例创建了一个不同的序列化函数,该函数将排除
\u id

function Player(name)
    {            
        this._name = name;                     
        this._id = "Player"+(Player_ID++);
    };

var newPlayer = new Player(newUnitName);
alert(JSON.stringify(newPlayer));

检查工作情况。

我们如何访问
console.log(newPlayer.\u id)
的可能重复项?
var Player_ID = 0;
function Player(name) {            
 this._name = name;                     
 this._id = "Player"+(Player_ID++);
 this.toJSON = function() {
   return {
     _name: this._name
   };
 };
};

var newPlayer = new Player('Name 1');
console.log(JSON.stringify(newPlayer)); // prints {"_name": 'Name 1'}