В объекте JS. Почему прототип и конструктор продолжают встраиваться друг в друга [дублировать]

Вот почти полная функция javascript, которая позволит использовать несколько маркеров в JSONObject.

Он отображает только маркеры, которые находятся в границах карты.

Это важно, поэтому вы не делаете дополнительной работы.

Вы также можете установить ограничение на маркеры, чтобы вы не показывали экстремальное количество маркеров (если есть возможность использования в вашем использовании);

он также будет не отображать маркеры, если центр карты не изменился более чем на 500 метров. Это важно, потому что, если пользователь нажимает маркер и случайно перетаскивает карту, делая это, вы не хотите, чтобы карта перезагружала маркеры.

Я привязал эту функцию к прослушивателю событий бездействия для карты поэтому маркеры будут отображаться только в том случае, если карта неактивна и будет повторно отображать маркеры после другого события.

В снимке экрана действий небольшое изменение в снимке экрана показывает больше содержимого в инфо-окне. , вставленный из pastbin.com

9
задан Ant's 30 May 2012 в 08:59
поделиться

2 ответа

Свойство prototype функции содержит объект, из которого все экземпляры этой функции наследуются при создании с помощью оператора new. И все эти объекты-прототипы (обычно) имеют свойство constructor, которое указывает на функцию - там вы имеете круглую ссылку. Таким образом, как свойство new test() наследует это свойство, (new test).constructor === test оценивается как true.

Вам нужно будет различать свойство prototype объекта функции и объекта-прототипа, из которого объект наследует - часто ссылается как «внутреннее свойство [[prototype]]».

Конструктор - это функция, не говорящая о Function, и имеет и то, и другое. Поэтому он наследует от объекта Function.prototype, где свойство constructor говорит, что все функции построены конструктором Function. Если ваша консоль разработчиков покажет прототип объектов Function, вы можете их увидеть. Я думаю, что в настройках есть опция.

Итак, знаменитая «цепочка прототипов» относится не к свойствам constructor и / или prototype, а о прототипе объекта, из которого этот объект наследуется от:

 function test() {}              new test()
   (a Function)              (a test instance)
        ||                           ||
        ||                           ||
        \/                           \/
 Function.prototype            test.prototype
(a Function, by spec)           (an Object)
        ||                           ||
        ||                           ||
        \/                           \/
 Object.prototype             Object.prototype
        ||                           ||
        ||                           ||
        \/                           \/
       null                         null
10
ответ дан Bergi 4 September 2018 в 07:08
поделиться

Thats одна из очень хороших книг, чтобы забрать.

Он охватывает больше javascript с точки зрения программистов, охватывающих все объектно-ориентированные методы, и большинство вещей в нем не покрываются никакими другие книги по javascript.

И про прототип. Каждый объект в JavaScript содержит скрытую часть состояния - ссылку на другой объект, известный как прототип объекта. Объекты прототипа в JavaScript дают нам наследование, и они позволяют нам совместно использовать реализации методов. Прототипы также цепочки. Другими словами, поскольку объект-прототип является всего лишь объектом, то объект-прототип может поддерживать ссылку на другой объект-прототип.

Прототип в Javascript - это немного сложная часть, как я это испытал, изучая ее.

Это отличная ссылка , чтобы узнать, как работает прототип в js.

2
ответ дан Katti 4 September 2018 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: