Новый оператор JavaScript делает, почти делают жизнь трудной?

Для представления формы, когда клавиша Enter нажимается, создают функцию JavaScript вдоль этих строк.

function checkSubmit(e) {
   if(e && e.keyCode == 13) {
      document.forms[0].submit();
   }
}

Тогда добавляют событие к любому объему, в котором Вы нуждаетесь, например, на теге Div:

<div onKeyPress="return checkSubmit(event)"/>

Это - также поведение по умолчанию Internet Explorer 7 так или иначе хотя (вероятно, более ранние версии также).

15
задан George Mauer 16 November 2009 в 19:47
поделиться

4 ответа

Прежде всего, похвалы при чтении Javascript: The Good Parts, это отличная книга по этому языку.

Чтобы ответить на ваш вопрос, требуется оператор new , если вы хотите использовать прототипное наследование. Нет другого способа «унаследовать» объект от другого. При этом вы можете копировать свойства из одного объекта в другой, что в некоторых случаях устранит необходимость в операторе.

Например, классический подход будет использовать следующее:

function MyClass() {};
MyClass.prototype.sayHello = function() {
   alert('hello');
};


var o = new MyClass();
o.sayHello();

Вы можете достичь примерно того же, что и следует:

function MyClass() {
   return { 
      sayHello: function() {
         alert('hello');
      }
   };
}

var o = MyClass();
o.sayHello();
8
ответ дан 1 December 2019 в 04:41
поделиться

Нет ничего плохого в операторе new . Для меня Крокфорд неубедителен по этому поводу. Всякий раз, когда вы создаете объект, вы будете либо использовать new где-нибудь в своем коде, либо использовать его неявно, создавая литералы (например, литералы объектов, такие как {a:

2
ответ дан 1 December 2019 в 04:41
поделиться

Вот отличная статья о реализации типичного объектно-ориентированного структурирования в prototype.js. Это было бы невозможно без оператора "new".

http://prototypejs.org/learn/class-inheritance

Я настоятельно рекомендую прочитать исходный код prototype.js. jQuery потрясающий и очень популярный, но некоторые вещи, которые были сделаны в прототипе, просто не имеют никакого сравнения ** где-либо еще, в частности, структура их классов.

** Некоторые люди могут возразить, что некоторые из того, что делает прототип, не должны ' нигде не найдешь - это другой вопрос. Но для полного понимания того, что возможно с javascript, лучше всего использовать прототип, IMHO.

1
ответ дан 1 December 2019 в 04:41
поделиться

Вы подняли книгу Крокфорда «JavaScript: хорошие части».

Новое - плохая часть. Страница 114. Не использую. (Ну, почти никогда.)

Крокфорд действительно использует его (в своем методе beget ()).

Определенно не надо ' Не используйте его, когда можете использовать что-то еще. Создавайте объекты и массивы с помощью литералов объектов и массивов.

2
ответ дан 1 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

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