У чым розніца паміж метадам і функцыяй у JavaScript?


адказ 1:

Розніца паміж спосабам і функцыяй: нічога такога няма

Функцыя - гэта набор кода для выканання задачы ў JavaScript.

Метад таксама з'яўляецца функцыяй, якая выкарыстоўваецца ў якасці ўласцівасці ў Object.

Напрыклад:

Функцыя: ніжэй прыведзена функцыя для дадання двух лікаў.

var func = функцыя (a, b) {

вар сума = a + b;

Сума вяртання;

}

Спосаб:

var obj = {імя: "Amod", empId: "A1122", узрост: функцыя (presentYear, DOB) {return presentYear - DOB}

}

Выкарыстанне функцыі як уласцівасці ў аб'екце - адзін з метадаў. На самай справе абодва функцыі.

Спадзяюся, у вас атрымалася.

(Копія з іншага ўстаўленага пытання, таму што я ведаю адказ і ён быў правільным)


адказ 2:

Уключым носьбіта англійскай мовы.

Факты:

  1. Усе метады - гэта функцыі. Не ўсе функцыі - гэта метады. Усе функцыі ў Java - гэта метады - таму што Java - гэта чыста аб'ектна-арыентаваная мова. Java правільна выкарыстоўвае слова "метад".

Метад - гэта асаблівы тып функцыі, які належыць аб'екту. Функцыю, якая не з'яўляецца метадам, можна выклікаць непасрэдна, не звяртаючыся да аб'екта кантэйнера. Аўтаномныя функцыі часта выкарыстоўваюцца як ананімныя функцыі, асабліва для функцыянальнага праграмавання. Мы бачым гэта ў JS, але на самой справе гэта не існуе ў Java, паколькі функцыя не можа быць аб'яўлена ў Java, не дадаўшы яе да аб'екта, што робіць яго метадам.

Напрыклад у Node.js / JS:

Функцыя pure () {return 'Гэта функцыя, якую можна назваць непасрэдна'; } var obj = {}; obj.method = function () {return 'Гэта метад, які трэба выклікаць з obj.method ()'; };

адказ 3:

Гэта сапраўды складаны пытанне з JavaScript. Тэхнічна кажучы, метад - гэта функцыя, якая таксама з'яўляецца ўласцівасцю аб'екта.

Такім чынам: imObject.imMethod ()

У той час як функцыя будзе толькі: imFunction ()

Дзе ўвесь фокус? Цяпер, калі вы вызначыце функцыю, падобную да гэтай:

Функцыя helloWorld () {console.log ('Прывітанне, свет!')}

Затым ён аўтаматычна прымацоўваецца да глабальнага аб'екта (называецца акном у браўзэрах). Так што калі мы запусцім codewindow.helloWorld (), "Добры дзень, свет!" Патрацілі на кансоль. AKA - гэта метад аконнага аб'екта.

Тое ж самае адбываецца, калі мы аб'яўляем функцыю наступным чынам:

var helloWorld = function () {console.log ("Прывітанне, свет!")} ORvar helloWorld = () => console.log ("Прывітанне, свет!")

Але гэта яшчэ не ўсё. Ён не становіцца ўласцівасцю глабальнага аб'екта, калі мы аб'яўляем яго з const або дазваляем ключавыя словы замест var.

Калі вы робіце наступнае:

хай imReferenceToMethod = someObject.someMethod

Затым вы атрымліваеце функцыю, якая не з'яўляецца метадам з імем imReferenceToMethod, хоць someObject.someMethod і imReferenceToMethod з'яўляюцца аднолькавымі функцыямі.

На практыцы тэрміналогія працуе наступным чынам: альбо метад, і словы функцыі выкарыстоўваюцца ўзаемазаменна - альбо - словы метаду, якія апісваюць функцыі, якія з'яўляюцца ўласцівасцямі аб'ектаў, якія не з'яўляюцца глабальнымі.


адказ 4:

Функцыя - частка кода, які называецца па імені. Дадзеныя могуць быць перададзены для апрацоўкі, а дадзеныя па жаданні могуць быць вернуты. Усе дадзеныя, перададзеныя ў функцыю, перадаюцца відавочна.

Метад - частка кода, які называецца імем, звязаным з аб'ектам. У большасці адносін яна ідэнтычная функцыі, за выключэннем двух асноўных адрозненняў:

  1. Метад няяўна перадаваў аб'ект, для якога ён быў выкліканы. Метад можа апрацоўваць дадзеныя, якія ўтрымліваюцца ў класе

Больш інфармацыі па гэтай тэме,

Наведайце learnverncom / unit / function-constructor-function-method-js


адказ 5:

Справа не ў якасці функцыі, а ў тым, як яна называецца.

Разгледзім наступны прыклад.

Функцыя Foo () {} Foo.prototype.bar = Foo_bar; Функцыя Foo_bar () {вярнуцца 1; } хай foo = новы Foo ();

У гэтым выпадку Foo_bar - гэта функцыя, якую можна выкарыстоўваць у якасці метаду.

foo.bar ()

і

Foo_bar.call (Foo)

эквівалентныя.


адказ 6:

Справа не ў якасці функцыі, а ў тым, як яна называецца.

Разгледзім наступны прыклад.

Функцыя Foo () {} Foo.prototype.bar = Foo_bar; Функцыя Foo_bar () {вярнуцца 1; } хай foo = новы Foo ();

У гэтым выпадку Foo_bar - гэта функцыя, якую можна выкарыстоўваць у якасці метаду.

foo.bar ()

і

Foo_bar.call (Foo)

эквівалентныя.


адказ 7:

Справа не ў якасці функцыі, а ў тым, як яна называецца.

Разгледзім наступны прыклад.

Функцыя Foo () {} Foo.prototype.bar = Foo_bar; Функцыя Foo_bar () {вярнуцца 1; } хай foo = новы Foo ();

У гэтым выпадку Foo_bar - гэта функцыя, якую можна выкарыстоўваць у якасці метаду.

foo.bar ()

і

Foo_bar.call (Foo)

эквівалентныя.