Mis vahe on meetodil ja funktsioonil JavaScriptis?


Vastus 1:

Meetodi ja funktsiooni erinevus: Mitte midagi kui sellist

Funktsioon on koodikomplekt JavaScriptis mõne ülesande täitmiseks.

Meetod on ka funktsioon, mida kasutatakse objektina objektina.

Näide:

Funktsioon: allpool on kahe numbri lisamise funktsioon.

var func = funktsioon (a, b) {

var summa = a + b;

tagastatav summa;

}

Meetod:

var obj = {nimi: “Amod”, tühjendatud: “A1122”, vanus: funktsioon (praegune aasta, DOB) {tagastama olev aasta - DOB}

}

Funktsiooni kasutamine objektina atribuutina on meetod. Tegelikult on mõlemad funktsioonid.

Loodetavasti saite aru.

(Kopeeri kleebitud teisest kvoorist, sama küsimus, kuna ma tean vastust ja see oli õige)


Vastus 2:

Võtame segu inglise keelest emakeelena rääkijaga.

Faktid:

  1. Kõik meetodid on funktsioonid.Kõik funktsioonid ei ole meetodid.Kõik Java funktsioonid on meetodid - kuna Java on puhas objektorienteeritud keel. Java kasutab sõna “meetod” õigesti.

Meetod on objektile kuuluv funktsiooni eritüüp. Funktsioon, mis ei ole meetod, on funktsioon, mida saab kutsuda otse, ilma konteineriobjektile viitamata; iseseisvaid funktsioone kasutatakse sageli anonüümsete funktsioonidena, eriti funktsionaalses programmeerimises. Me näeme seda JS-is, kuid Java-s seda tegelikult ei eksisteeri, kuna funktsiooni ei saa Java-s deklareerida ilma objektile kinnitamata, muutes selle meetodiks.

Näiteks saidil Node.js / JS:

funktsioon puhas () {
 return 'See on funktsioon, mida saab otse nimetada';
}
var obj = {};
obj.method = function () {
return 'See on meetod, peate selle käivitama obj.method ()';
};

Vastus 3:

See on JavaScripti puhul tõesti keeruline küsimus. Tehniliselt on meetod funktsioon, mis on ka objekti omadus.

Niisiis: imObject.imMethod ()

Kuigi funktsioon oleks lihtsalt: imFunction ()

Niisiis, kus on kõik trikid? Noh, kui määratlete funktsiooni nagu allpool:

funktsioon helloWorld () {
    console.log ('Tere, maailm!')
}

Siis kinnitatakse see automaatselt ka globaalse objekti külge (brauserite puhul nimetatakse aknaks). Nii et kui me jookseme allpool codewindow.helloWorld (), prinditakse see konsoolile “Tere, maailm!”. AKA, see on aknaobjekti meetod.

Sama juhtub siis, kui kuulutame funktsiooni järgmiselt:

var helloWorld = function () {console.log ('Tere, maailm!')} ORvar helloWorld = () => console.log ('Tere, maailm!')

Kuid hei, see pole veel kõik. See ei muutu globaalse objekti omandiks, kui kuulutame selle kasutades const või laseme märksõnade asemel var.

Kui teete järgmist:

lase imReferenceToMethod = someObject.someMethod

Siis saate funktsiooni, mis ei ole meetod nimega imReferenceToMethod, hoolimata asjaolust, et mõnedObject.someMethod ja imReferenceToMethod on mõlemad samad funktsioonid.

Praktikas toimib terminoloogia nii: kas meetodit ja funktsioonisõnu kasutatakse vaheldumisi või - meetodisõna kasutatakse funktsioonide kirjeldamiseks, mis on objekti omadused, mis pole globaalsed.


Vastus 4:

Funktsioon on kooditükk, mida nimetatakse nimega. Selle töötamiseks võib edastada andmeid ja soovi korral andmeid tagasi saata. Kõik funktsioonile edastatud andmed on selgesõnaliselt edastatud.

Meetod on kooditükk, mida nimetatakse objektiga seotud nimega. Enamasti on see funktsiooniga identne, välja arvatud kaks peamist erinevust:

  1. Meetod on kaudselt läbitud objektil, millel seda nimetati. Meetod on võimeline töötama klassis sisalduvate andmetega

Lisateavet selle teema kohta leiate

külastage aadressi learningverncom / üksus / funktsioon-konstruktor-funktsioon-meetod-js


Vastus 5:

See ei ole funktsiooni kvaliteet, vaid see, kuidas seda kasutatakse.

Vaatleme järgmist näidet.

funktsioon Foo () {}

Foo.prototype.bar = Foo_bar;

funktsioon Foo_bar () {
  tagasi 1;
}

las foo = uus Foo ();

Sel juhul on Foo_bar funktsioon, mida võib kasutada meetodina.

foo.bar ()

ja

Foo_bar.call (foo)

on samaväärsed.


Vastus 6:

See ei ole funktsiooni kvaliteet, vaid see, kuidas seda kasutatakse.

Vaatleme järgmist näidet.

funktsioon Foo () {}

Foo.prototype.bar = Foo_bar;

funktsioon Foo_bar () {
  tagasi 1;
}

las foo = uus Foo ();

Sel juhul on Foo_bar funktsioon, mida võib kasutada meetodina.

foo.bar ()

ja

Foo_bar.call (foo)

on samaväärsed.


Vastus 7:

See ei ole funktsiooni kvaliteet, vaid see, kuidas seda kasutatakse.

Vaatleme järgmist näidet.

funktsioon Foo () {}

Foo.prototype.bar = Foo_bar;

funktsioon Foo_bar () {
  tagasi 1;
}

las foo = uus Foo ();

Sel juhul on Foo_bar funktsioon, mida võib kasutada meetodina.

foo.bar ()

ja

Foo_bar.call (foo)

on samaväärsed.