So wie Sie eine Variable namens a haben können, können Sie eine Variable namens $ oder _ haben. Google auf Variablennamen in Javascript, die Suche wird weitere Informationen zur Verfügung stellen, aber auf den Punkt Ihrer Frage, betrachten Sie dieses:
var a = 1; //creates a variable named a, value is one
var $ = 1; //creates a variable named $, value is one
weil es Javascript ist, kann eine Variable halten auch eine Funktion:
var a = function(){return 1;} // calling a() will return one
var $ = function(){return 1;} // $ is a var whose value is a function.
nun, wenn Sie eine Funktion, die Sie sehr häufig anrufen, forexample JQuery Bibliothek eine Funktion namens JQuery(), die Elemente und enthält alles andere wickelt, macht es Sinn, eine Verknüpfung zu haben für sie:
function JQuery(){...} //everything that JQuery does
var $ = JQuery; //now $() is the shorthand for JQuery()
Auch, weil es Javascript ist, kann eine Funktion einen Wert zurückgeben, oder eine andere Funktion:
var cheerio = {
load: function(start){
return function(end){ return start + " " + end }
}
}
var $ = cheerio.load("hello");
$("world"); // will return "hello world"
$("my friend"); //will return "hello my friend"
In Ihrem Beispielcode hat $ für ther Rückgabewert von cheerio.load als Abkürzung() Funktion verwendet . so ist $('#topic_list .topic_title')
entspricht
cheerio.load(res.text)('#topic_list .topic_title')
was bedeutet, dass cheerio.load(res.text)
wird erwartet, dass eine Funktion zurück, die später aufgerufen werden kann. In der zweiten Zeile des Beispielcodes ist $ also nichts anderes als diese Funktion. Wenn Sie zuvor JQuery verwendet haben, können Sie weiterhin JQuery() anstelle von $() verwenden.
$ Element ist nur ein Variablenname, ein visueller Hinweis, dass es das Ergebnis von $ (Element) ist. Sie könnten genauso leicht gesagt haben var froggy=$(element)
aber $ Element ist lesbarer.
_ [Cheerio eine Teilmenge der Kern jQuery implementiert ...] (https://github.com/cheeriojs/cheerio) _ –
Sie können Funktion von etwas zurückgeben und nennen es dann. Wäre das "doc_fn" sinnvoller? – tadman