2010-06-03 4 views
1

При попытке вызова метода в редакторе javascript CodeMirror. Я новичок в javascript и пытаюсь понять, как работает объектно-ориентированный материал. У меня проблемы с тем, что я считаю методами. Например,Понимание методов метода прототипов

var editor = CodeMirror.fromTextArea('code', options); 
editor.grabKeys(function(e) { alert("Key event");}); 

Это дает Uncaught TypeError: Cannot call method 'grabKeys' of undefined. Глядя на объект editor, показано, что grabKeys, по-видимому, находится по адресу editor.__proto__.grabKeys.

Как я должен думать об этом?

+0

Похож на CodeMirror.fromTextArea ('code', options); 'возвращает' undefined'. Может быть, вы передаете неправильные аргументы этой функции? – harto

+0

Если я console.log (editor), он возвращается как объект, который я могу исследовать. – Tristan

ответ

2

Возможно yoour код должен быть что-то вроде этого:

var editor = new CodeMirror.fromTextArea('code', options); 
editor.grabKeys(function(e) { alert("Key event");}); 

Обратите внимание на «новый» оператор ..

Вот хорошее объяснение того, что прототип метода звонки для:

http://www.javascriptkit.com/javatutors/proto.shtml

+0

Это, похоже, не исправить. – Tristan

+1

Связанная документация предполагает иное. – harto

+0

Извините, не заметил, что fromTextArea - это функция утилиты, которая создает объект для вас. Итак, каков ваш объект «вариантов»? Можете ли вы разместить здесь содержимое? – Vlad

Смежные вопросы