Javascript 无法访问对象原型

Javascript 无法访问对象原型,javascript,node.js,express,javascript-objects,Javascript,Node.js,Express,Javascript Objects,我正在尝试访问节点js代码中的对象原型。该对象将通过API发送,并允许用户使用该对象的方法。 问题在于,返回的对象只包含对象的属性,而不包含方法和_proto__ 你知道为什么吗 class foo { constructor() { this.bar = "bar" } usefullMethod () { return 123 } } var user = new foo() console.log(user) // {ba

我正在尝试访问节点js代码中的对象原型。该对象将通过API发送,并允许用户使用该对象的方法。 问题在于,返回的对象只包含对象的属性,而不包含方法和_proto__

你知道为什么吗

class foo {
    constructor() {
        this.bar = "bar"
    }

    usefullMethod () {
       return 123
    }
}

var user = new foo()

console.log(user) // {bar: "bar"} does not display usefullMethod function

特快专递:

res.json(user) // returns only object attributes but not the __proto__

您试图覆盖整个原型,尽管无法覆盖。应该是:

foo.prototype.usefullMethod = () => 123;

prototype属性不可写。您应该使用foo.prototype.usefulMethod==>123;。架线原型的概念没有多大意义。JSON是字符串数据。如果您需要在json字符串解析为object之后将其添加到客户端,您应该很高兴json没有严格遵守原型链-想象一下字符串化数组并获得所有这些属性:lastIndexOf、sort、map、reduce…或字符串trimStart、toUpperCase等。您必须console.loguser.usefullMethod。当然,您必须问问自己,如果您刚刚创建了类,为什么要使用.prototype。在这种情况下,为什么不将该方法放在类中?@AxelMadode您是否希望console.loguser;要显示usefullMethod?为什么?@Sebastian Simon在创建这个类之前,我编写了一个带有函数的模块,然后导出了这个对象。但我也有同样的问题。我的目标是发送此对象及其所有函数以响应服务器的请求。接收对象的实例应允许我执行客户端操作。