2013-10-07 3 views
1

Я пытаюсь сократить до вещей немного, поэтому я делаю функцию, которая реализует этотИспользование подчеркивания, как знак доллара в JavaScript

Element.prototype.methodName = function(selector) { 
    return this.querySelector(selector); 
} 

Это нормально, когда я пытался использовать $ или другие буквы или слова, но похоже, что подчеркивание не работает с ним, зная, что подчеркивания _ являются допустимыми именами переменных.

Element.prototype._ = function(selector) { 
    return this.querySelector(selector); 
} 

называется так: _('body')

Сообщение об ошибке: ReferenceError: _ is not defined

+0

Какой браузер вы используете? –

+2

Как это не работает? Получаете ли вы конкретную ошибку при попытке вызвать '_()'? –

+0

'ReferenceError: _ не определен' –

ответ

0

Если у вас есть следующий HTML:

<div id="foo"></div> 

И следующий код JavaScript:

var foo = document.getElementById('foo'); 

Element.prototype._ = function() { 
    this.innerHTML = "Bar"; 
} 

foo._(); 

Everthing работает нормально, как ожидалось, по крайней мере, в Google Chrome. Я не тестировал другой браузер. Таким образом, вы можете расширить все элементы с помощью желаемой функции. Конечно, сначала нужно получить элемент, вызов _(); по-прежнему дает опорную ошибку. Если вам просто нужна функция с именем _, вы должны написать:

function _() { 
    // do something 
} 
Смежные вопросы