2015-07-30 2 views
2

В JQuery я это делаю:

$.fn.extend({ 
    hello: function() {console.log(this + ' says hello world.')} 
}); 

, а затем

$('div').hello(); 

Могу ли я сделать это в чистом JavaScript без загрузки всего JQuery только для этого?

+0

Возможный дубликат [Javascript object extend -] (http://stackoverflow.com/questions/10430279/javascript-object-extending) – kosmos

+1

«Могу ли я сделать это в чистом javascript без загрузки всего jQuery именно для этого?» - Да. Посмотрите исходный код jQuery, чтобы узнать, как они это сделали. – Quentin

ответ

1

Ну, технически вы могли бы сделать что-то вроде этого:

function extendingQuerySelector(selector, extension) { 
    var el = document.querySelector(selector); 
    for(var key in extension) { 
     if(extension.hasOwnProperty(key)) { 
      el[key] = extension[key]; 
     } 
    } 
    return el; 
} 

Хотя это не кажется хорошей идеей расширить основные объекты DOM. Здесь нет обертки jQuery, хотя вы, конечно, можете сделать такую ​​оболочку.

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