Если
$
является объектом то как JQuery в состоянии назвать его скобкой()
, как$('#MYdIV')
. Это мой первый и самый важный вопрос.Я пытаюсь изучить шаблоны проектирования и подстилающие механизмы создания объекта. Поэтому я хочу создать библиотеку, которая, когда пользователь вводит
myLibrary({option1:true});
, сможет создать экземпляр объекта без использования ключевого слова new.Just как jquery и вот так: https://github.com/bendc/animateplus/blob/master/animate.js В этом примере он не использует ключевое словоnew
илиthis
. Он просто создает анимацию IIFE, которая возвращает другую функцию с тем же именем. Я не знаю, как он может это сделать. Является ли анимация привязана к глобальному объекту?
ответ
jQuery
или $
- это просто функция. Рассмотрим следующий пример, который создает объект с аналогичным поведением.
Конечно, JQuery имеет гораздо более сложную и умную структуру, это всего лишь пример:
var not$ = function(o) {
var result = document.querySelectorAll(o);
result.customInnerText = function(text) {
if (text === undefined) {
return document.querySelector(o).innerText;
} else {
document.querySelector(o).innerText = text;
}
};
result.customClickHandler = function(callback) {
document.querySelector(o).addEventListener('click', callback);
};
return result;
};
not$.customConsoleLog = function(text) {
console.log(text);
};
not$("a").customClickHandler(function() {
var exampleText = not$("#title").customInnerText();
not$("#text").customInnerText(exampleText + "It works!");
not$.customConsoleLog(not$("p").length);
not$.customConsoleLog(not$("p")[0]);
});
<a href="#">Click me!</a>
<p id="title">Example:</p>
<p id="text">Check!</p>
Ницца! Я был смущен. Bc все используют новое ключевое слово при создании библиотеки. – SSS
Что делать, если я хочу вернуть только 'not $ ('a')' и получить список элементов 'a'. Как это сделать в коде? – SSS
@SaleSale Я предполагаю, что вы хотите использовать 'querySelectorAll' :) Просто перейдите в Google. –
(1) $
является не объект, а функция.
console.log(typeof $);
// function
Что может быть запутанным здесь - и это только предположение - это то, что вы можете получить доступ к свойствам на $
переменной, например $.extend
или $.fn
(используется при написании собственных плагинов jQuery). Это нормально, поскольку функции могут иметь свойства. Спецификации ECMAScript позволяют это.
(2) Функции конструктора могут быть использованы для создания новых объектов, но не требуется. Вы можете просто использовать объектные литералы, и это работает так же хорошо. Как отметил @Jeff в другом ответе, функция, вызываемая с помощью new
, делает ее конструкторной функцией. В противном случае различий в синтаксисе нет. Вам решать, хотите ли вы использовать.
Сначала несколько терминов:
- примитивным является one of the following: строка, число, логическое, нуль, неопределенная, символ
- Объект является по существу любого рода вещи, что это не primitve в Javascript. Если это то, что вы хотите использовать или манипулировать, это объект.
- Функция - это особый тип объекта, который может использоваться для запуска javascript. Это можно назвать синтаксисом
function()
- Конструктор только функция. Это функция, которая предназначена для вызова с ключевым словом
new
, как вnew Thing()
. Обратите внимание на заглавную букву - это соглашение.
Таким образом, мы можем видеть, что JQuery использует функцию, а не функцию-конструктор. В частности, если вы посмотрите на исходный код, мы найдем что-то вроде $ = function() {...}
И это в основном это - они определяют глобальную переменную под названием $
и определяют ее как функцию, которая может быть использована. Конечно, поскольку функции являются объектами, вы можете также делать такие вещи, как $.randomNumber = 4
, без проблем, и это никоим образом не повлияет на JQuery.
Итак, если вы хотите сделать что-то подобное, вы захотите определить свою собственную глобальную переменную и установить ее как функцию - просто отдавайте себе отчет в том, что уже сделано - т. Е.не используйте $
или _
или что угодно.
- 1. Сделать это проще назвать обычай Jquery Plugin
- 2. нельзя назвать «это» правильно в JQuery
- 3. Как назвать это кодирование?
- 4. Как однозначно назвать объект
- 5. Как мне это назвать? Промежуточное?
- 6. Как передать объект $ (это) Jquery
- 7. не в состоянии назвать экстерном функцию
- 8. не в состоянии назвать instance_double дважды
- 9. Обработка исключений - set_unexpected() не в состоянии назвать
- 10. не в состоянии назвать sqlsrv_connect функцию
- 11. Ionic2 не в состоянии назвать угловых Service
- 12. Как назвать объект в пределах объекта
- 13. Объект нельзя назвать
- 14. JQuery Quickfix: Я не знаю, как назвать это
- 15. Как назвать объект в слайде PowerPoint?
- 16. jQuery Javascript передать родительский объект, как это
- 17. как назвать JQuery Javascript функция
- 18. JQuery $ (это) Проблема, неправильный объект
- 19. Не могу назвать «это» в прототипе конструктора
- 20. Объект pandas 'bool нельзя назвать'
- 21. Как назвать объект в $ (документ) .ready снаружи его
- 22. Как назвать вид через JQuery
- 23. Как назвать массив или объект после селектора?
- 24. не в состоянии назвать веб-сервис от WebView
- 25. стога автозаполнения JQuery UI не в состоянии сделать это работает
- 26. Как объявить и назвать это мероприятие?
- 27. можно ли назвать значение Appconfig как объект?
- 28. Pex и «\ 0», как правильно это назвать?
- 29. Как назвать это на моем Main.java (андроид)
- 30. Как правильно отображать объект в свободном состоянии
Я получил '> TypeOf $ <- "функция"' – Tushar
функции являются объектами в Javascript. Вот как. Прочтите вступительную статью о Javascript. –
так что $ - функция-конструктор? – SSS