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

Object.prototype.method

10.11.2016, 16:25. Показов 1095. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru