How to create a JS object with the default prototype from an object without a prototype?

前端 未结 4 2232
傲寒
傲寒 2021-01-19 22:58

Background: The module query-string is for example able to parse key=value&hello=universe to an object {key: \'value\', hello: \'univ

4条回答
  •  半阙折子戏
    2021-01-19 23:31

    It would be convenient to use parsed.hasOwnProperty('hello') but that is not possible without the default object prototype

    The whole point of creating such a "bastard object" is that you cannot do that - what if someone sent a query string ?hasOwnProperty=oops to your server?

    How to nicely convert the prototypeless object to have a default object prototype and methods such as hasOwnProperty?

    Don't. You should either use the long form with call, or just go for the in operator which does exactly what you need:

    'hello' in parsed
    

    In an ES6 environment, you might also want to convert the object to a proper Map and use it has method.

提交回复
热议问题