javascript是否有__repr__等价物?

use*_*209 21 javascript python node.js

我最接近Python的repr的是这样的:

function User(name, password){
         this.name = name;
         this.password = password;
}
User.prototype.toString = function(){
    return this.name;
};



var user = new User('example', 'password');

console.log(user.toString()) // but user.name would be even shorter
Run Code Online (Sandbox Code Playgroud)

有没有办法在object默认情况下将字符表示为字符串?或者我将不得不object.variable用来获得我想要的结果?

And*_*son 21

JSON.stringify可能是你从本地图书馆得到的最接近的.它不适用于对象,但您可以定义自己的代码来解决这个问题.我搜索了提供此功能但没有找到任何内容的库.


har*_*704 10

console.log可以通过向该inspect()Object 添加方法来覆盖Javascript对象的表示

例如:

function User(name, password){
         this.name = name;
         this.password = password;
}
User.prototype.toString = function(){
    return this.name;
};
User.prototype.inspect = function(){ return 'Model: ' + this.name ; }
Run Code Online (Sandbox Code Playgroud)

- 感谢'Ciro Santilli'

  • 请注意,覆盖“inspect”已被弃用,现在您必须实现“[util.inspect.custom]”:/sf/answers/1868888241/ (2认同)

Cir*_*四事件 7

util.inspect

http://nodejs.org/api/util.html#util_util_inspect_object_options

const util = require('util');
console.log(util.inspect({ a: "0\n1", b: "c"}));
Run Code Online (Sandbox Code Playgroud)

输出:

{ a: '0\n1', b: 'c' }
Run Code Online (Sandbox Code Playgroud)