Это ключевое слово java ... final
всегда одинаково в orroid или нет в android. Это зависит от того, к чему вы обращаетесь.
Например
Применить к переменной означает, что ее нельзя изменить после инициализации.
Применить к методу означает, что он не может перегрузить метод.
Применить к классу, и вы не можете переопределить этот класс.
Это не уникально для jQuery, но является аспектом javascript. Все функции - это объекты. Например ::
var f = function() { alert('yo'); }
f.foo = "bar";
alert(f.foo); // alerts "bar"
f(); // alerts "yo"
люди играют вокруг с функциями javascript, и это приводит к интересным шаблонам дизайна. Jquery использует многие из этих шаблонов и создает приятную оболочку вокруг многих функций. так что jquery в конечном счете похож на статический класс, в котором можно делать действительно аккуратные stuff ..
, как и все классы, у него есть имя, а по умолчанию - jQuery. $ - ничто не покупает идентификатор, который привязан к библиотеке jQuery и не позволяет вам вводить «jQuery» в качестве идентификатора.
Тот факт, что он является символом $, является произвольным. В какой-то момент было принято решение использовать символ $, но факт заключается в том, что он мог быть почти любым допустимым идентификатором ECMAScript.
Основная причина, по которой мы используем $ в качестве идентификатора, заключается в том, что вы вряд ли допустите простые ошибки опечатки при вводе одного символа вместо строки.
Надеюсь, что все ясно. Пожалуйста, исправьте меня, ребята, если у меня что-то не так
A простой пример, например, что моя собственная библиотека скажет класс калькулятора
var Calculator= (function()
{
function add(a,b)
{
return a+b;
}
function subtract(a,b)
{
return a-b;
}
function multiply()
{
return a*b;
}
function log()
{
console.log("log 123")
}
return
{
add: add,
subtract: subtract,
multiply: multiply
}
}());
Теперь я могу выполнить операцию с использованием класса Calculator следующим образом:
Calculator.multiply(Calculator.add(2,3),5);
добавить, что мои локальные функции частные и не подвергаются воздействию снаружи. В этом случае моя функция журнала не может быть доступна с помощью Calculator.log, он скажет, что метод не найден на объекте.
Теперь, возвращаясь к вашему вопросу, вы можете сделать что-то вроде этого:
var _ = Calculator;
и теперь используют функции calc, такие как
_.multiply(_.add(2,3),5);
. Интересно, что библиотека также называется underscore ..
jQuery
или $
является функцией (вы знаете, $
является псевдонимом jQuery
).
// Define a local copy of jQuery
jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
},
В Javascript все объекты даже function
тоже , Следовательно, вы можете напрямую добавлять свойства к функциям.
jQuery.find = function () {
}
$
- функция. метод $ может возвращать любую вещь.
Например:
$ = function() {
return {
foo : function() { return 'baa'; },
r1: 1,
r2 : 'string'
}
};
typeof $ <- function
typeof $() <- object
typeof $().foo <- function
typeof $().foo() <- string
typeof $().r1; <- number
typeof $().r2 <- string
var q=function(){};
var s = function(){
alert("base");
window.s = s;
return new q()};
q.fn = q.prototype = {};
q.fn.x = s.x = function(){alert("x");return this;};
q.fn.y = s.y = function(){alert("y");return this;};
q.fn.z = s.z = function(){alert("z");return this;};
s().y().z().x();
s.z().x().y();
Javascript - объектно-ориентированный язык, поэтому функции ARE объекты, просто причудливые, которые вы можете вызвать.
foo = function() { console.log("foo") }
foo.bar = function() { console.log("bar") }
foo() //=> prints "foo"
foo.bar() //=> prints "bar"
var s = function(){};
s.test = function(){console.log('inside s');}
s.test();
является совершенно законным кодом.
$( ... )
и $.foo( ... )
?
– Šime Vidas
28 August 2011 в 21:20
Это объект.
$
выполняет различные функции.
Вы можете проверить это самостоятельно, создав свой собственный объект:
var $ = {
select: function(id){return document.getElementById(id);}
}
function $(id){
return $.select(id);
}