Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
9 / 9 / 5
Регистрация: 22.04.2015
Сообщений: 305

Object.prototype.method

10.11.2016, 16:25. Показов 1073. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! объясните пожалуйста, есть функция конструктор "myObject":
JavaScript
1
2
3
4
5
6
7
8
9
function myObject () { };
 
myObject.prototype.on = function () { 
  alert('myObject.method');
}
 
var myChild = new myObject();
 
myChild.on();
код работает и выводит модальное окно с содержимым "myObject.method"
---
А теперь так, есть объект "myObject":
JavaScript
1
2
3
4
5
6
7
8
9
var myObject = {};
 
myObject.prototype.on = function () { 
  alert('myObject.method');
}
 
var myChild = new myObject();
 
myChild.on();
и результат ошибка: "Cannot set property 'on' of undefined"
myObject.prototype.on = function () { }

1) В чем разница?
2) функция ведь тоже объект?
Пожалуйста объясните
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.11.2016, 16:25
Ответы с готовыми решениями:

Object.prototype.b
По умолчанию в прототипе функции Object (кстати, так можно эти функции называть классами или конструкторами?) не содержится никаких свойств...

Uncaught TypeError: Object . has no method 'IndexOf'
Добрый вечер! Проблема вроде простая, но как оказалось не совсем, дело вот в чем: str = JSON.stringify(obj.answer); ...

Uncaught TypeError: Object 19374:Екатеринбург, ул. Куйбышева, 67 has no method 'IndexOf'
//запись myPoints.push({coords:, text:.num_object+":"+obj.address]}); ... далее в другой функции пытаюсь проверить вхождение...

5
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
10.11.2016, 16:30
У пустого объекта myObject во втором случае отсутствует свойство prototype. В первом - присутствует.
0
9 / 9 / 5
Регистрация: 22.04.2015
Сообщений: 305
10.11.2016, 16:43  [ТС]
JavaScript
1
2
3
4
function myFunc () { };
     var myObjc =  { };
 
alert(myFunc.prototype + '  и ' + myObjc.prototype)
результат: [object Object] и undefined

Почему у функции есть свойство prototype ,а у Объекта его нет?
не понимаю(
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
10.11.2016, 16:45
Granfury, потому что в случае с объектом, вы задаёте свойство prototype самостоятельно... А у функции изначально есть такое свойство, так же есть свойство __proto__, в которое копируются свойства из prototype.
1
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
10.11.2016, 16:52
Лучший ответ Сообщение было отмечено Granfury как решение

Решение

Используя конструктор функции (function myFunc(){}) вы создаете объект с кучей свойств по умолчанию, одно из которых - prototype. Объявляя объект таким образом (var myObjc = {}) вы создаете пустой объект, в котором ничего нет. Вообще. Никаких свойств, никаких значений. Пустота.
1
9 / 9 / 5
Регистрация: 22.04.2015
Сообщений: 305
10.11.2016, 16:53  [ТС]
Всем спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2016, 16:53
Помогаю со студенческими работами здесь

insertRow() после insertCell() выдает ошибку, что object не поддерживает такие method or property.
Создаю в скрипте в таблице строки и ячейки: var rrRow = document.all.item('tTable').insertRow(); var rrCells1 = rrRow.insertCell(); ...

Как вывести [object object] в консоле выводит так:
Array(1) 0: ID: "1" OPPORTUNITY: "1900.00" UF_CRM_1556699712: "49" UF_CRM_1556699760: "22" UF_CRM_1556699777: "911909553854" ...

Динамическое добавление Object в существующий Object
Всем привет, вопрос таков, допустим у нас есть объект // некий объект var obj = { sid : "32423j4k2j4k2424d34", ...

Javascript prototype
Вообщем, смотрим код ниже. function EsObject(_data){ var data = $.extend(true, {}, _data), SelfObj = this; this.set =...

C.prototype.constructor = C
Привет. Код function A() { this.Name = 'Class A' } A.prototype.PrintName = function () { alert(this.Name); }


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru