var obj = new XMLHttpRequest();
console.log("Object.keys():",Object.keys(obj));
console.log("Object.getOwnPropertyNames():",Object.getOwnPropertyNames(obj))
console.log("Object.entries():",Object.entries(obj))
console.log("JSON.stringify():",JSON.stringify(obj))
console.log("console.log:"); console.log(obj)
выход:
Object.keys(): []
Object.getOwnPropertyNames(): []
Object.entries(): []
JSON.stringify(): {}
console.log:
XMLHttpRequest {onreadystatechange: null, readyState: 0, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, …}
Как я могу создать такой объект в javascript, свойства которого выводятся только с помощью console.log(obj)
, но не возвращаются ни одной из вышеперечисленных функций?
Я уже пытался создавать объекты, используя constructor function
, object.create()
(с enumerable:false
), Object.assign()
, используя getters
, создавая из класса, создавая из расширенного класса и т.д.
Object.create({get test() { return 1; }})
. Но нет, XHR — это хост-объект, и консоль может делать с ним все, что захочет. - person Bergi   schedule 02.06.2020