Каква е разликата между метод и функция в JavaScript?


Отговор 1:

Разлика между метод и функция: Нищо като такова

Функцията е набор от кодове за изпълнение на някаква задача в JavaScript.

Методът е също функция, която се използва като свойство в Object.

Ex:

Функция: по-долу е функцията за добавяне на две числа.

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

var sum = 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 = функция () {
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 / единица / функция-конструктор-функция-метод-js


Отговор 5:

Това не е качество на функцията, а как се извиква.

Помислете следния пример.

функция Foo () {}

Foo.prototype.bar = Foo_bar;

функция Foo_bar () {
  връщане 1;
}

нека foo = нов Foo ();

В този случай Foo_bar е функция, която може да се използва като метод.

foo.bar ()

и

Foo_bar.call (Фу)

са равностойни.


Отговор 6:

Това не е качество на функцията, а как се извиква.

Помислете следния пример.

функция Foo () {}

Foo.prototype.bar = Foo_bar;

функция Foo_bar () {
  връщане 1;
}

нека foo = нов Foo ();

В този случай Foo_bar е функция, която може да се използва като метод.

foo.bar ()

и

Foo_bar.call (Фу)

са равностойни.


Отговор 7:

Това не е качество на функцията, а как се извиква.

Помислете следния пример.

функция Foo () {}

Foo.prototype.bar = Foo_bar;

функция Foo_bar () {
  връщане 1;
}

нека foo = нов Foo ();

В този случай Foo_bar е функция, която може да се използва като метод.

foo.bar ()

и

Foo_bar.call (Фу)

са равностойни.