Node.js Object对象没有方法'hasOwnProperty'

UpT*_*eek 23 javascript node.js express

不确定为什么hasOwnProperty()我的对象似乎遗漏了......

我从expressjs3中的http帖子获取数据,如下所示:

someControllerFunction: function(req, res){
            var data = req.body.loc;
...
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做:

data.hasOwnProperty('test'); 
Run Code Online (Sandbox Code Playgroud)

我明白了:

Object object has no method 'hasOwnProperty' 
Run Code Online (Sandbox Code Playgroud)

也许我错过了一些明显的东西,但是什么呢?

(节点10.5,Express 3.2.1)

ale*_*lex 40

该对象可能没有Object.prototype原型.

如果对象是用...创建的,则会出现这种情况.

var data = Object.create(null);
Run Code Online (Sandbox Code Playgroud)

你可以用......

Object.prototype.hasOwnProperty.call(data, 'test');
Run Code Online (Sandbox Code Playgroud)

...测试属性是否存在.

  • `Object.hasOwnProperty.call(data,"test")`更短,也可以.这通常被认为是调用hasOwnProperty的安全方式,因为hasOwnProperty确实不存在,或者可以在所考虑的对象中给出不同的值. (2认同)