Каждый объект имеет внутреннее свойство [[Prototype]], связывающее его с другим объектом:
object [[Prototype]] -> anotherObject
В традиционном javascript связанный объект является свойством prototype
функции:
object [[Prototype]] -> aFunction.prototype
В некоторых средах [[Prototype]] отображается как __proto__
:
anObject.__proto__ === anotherObject
При создании объекта создается ссылка [[Prototype]].
// (1) Object.create:
var object = Object.create(anotherObject)
// object.__proto__ = anotherObject
// (2) ES6 object initializer:
var object = { __proto__: anotherObject };
// object.__proto__ = anotherObject
// (3) Traditional JavaScript:
var object = new aFunction;
// object.__proto__ = aFunction.prototype
Таким образом, эти утверждения эквивалентны:
var object = Object.create(Object.prototype);
var object = { __proto__: Object.prototype }; // ES6 only
var object = new Object;
Оператор new
не показывает саму цель ссылки (Object.prototype
); вместо этого цель подразумевается конструктором (Object
).
Помните:
__proto__
. prototype
. new
, связаны со свойством prototype
их конструктора. prototype
останется неиспользованным. new
. HttpWebRequest.Proxy
возвращает интерфейс IWebProxy
, а не Веб-прокси
. Измените это, и он будет работать.
Вы также можете использовать WebRequest.DefaultWebProxy или WebRequest.GetSystemWebProxy () для получения сведений о прокси вместо создания HttpWebRequest
] и получить от него прокси.