Сделать метод общедоступным в JavaScript.Почему этот синтаксис? - PullRequest
3 голосов
/ 25 мая 2011

Я изучал TinyMCE код и наткнулся на этот способ разоблачения открытых методов:

tinymce.extend(this, {
    execCommand : execCommand,
    queryCommandState : queryCommandState,
    queryCommandValue : queryCommandValue,
    addCommands : addCommands
});

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

this.execCommand = execCommand;
this.queryCommandState = queryCommandState;
this.queryCommandValue = queryCommandValue;
this.addCommands = addCommands;

Или даже короче, где-то в объявлении объекта:

execCommand: execCommand,
queryCommandState: queryCommandState,
queryCommandValue: queryCommandValue,
addCommands: addCommands

Где подвох?

1 Ответ

2 голосов
/ 25 мая 2011

Хорошо, одна вещь, которая бросается в глаза, это первый пример, который у вас есть, это метод, в котором TinyMCE ожидает свои аргументы для своей функции extend.в источнике extend он проверяет каждую пару значений ключа на undefined, добавляя их только к объекту, если они определены.Итак, есть немного дополнительной функциональности, которая может быть полезна при расширении класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...