Сообщение от petya
			 
		
	 | 
	
		Метод -- это свойство со ссылкой на  функцию, можно так сказать. Функция в js - это первоклассный объект. На этот объект может быть много ссылок.  
f=function waw(){}//f является ссылкой на (скомпилированный) объект function waw(){}
o={}
o.f=f//o.f является ссылкой на (скомпилированный) объект function waw(){}, т.e. тот же самый объект.
 
Методом обычно называют ссылку типа o.f, хотя это условность, f является global.f (в браузере global -- window) 
 
 
Да, в js все есть объект, семантически, по факту, примитивные типы не являются объектами, но и с ними можно обращатся как с объектами, они преобразуются в объекты, при необходимости. Функция -- это 100% объект. 
Твое непонимание идет от того, что ты не можешь отличить функцию от вызова функции. допустим есть функция. Представь себе, что return - это не синтаксическая конструкция, а функция, которая получает 1 аргумент.  
foo=function(){return(yoba)}
return (foo) // return получает в качестве аргумента function(){return(yoba)}
return (foo()) // return получает в качестве аргумента yoba
  
Прочувствуй эту разницу
	 | 
	
Спасибо большое за ответы , но не много не ясно касательно этого 
"Методом обычно называют ссылку типа o.f, хотя это условность, f является global.f (в браузере global -- window)
"
ведь f  это свойство, а 
о может быть не global, а находиться в функции, то есть LExicalEnviroment
function makeCounter() {
  var currentCount = 0;
  // возвращаемся к функции
  function counter() {
    return ++currentCount;
  }
  // ...и добавляем ей методы!
  counter.set = function(value) {
    currentCount = value;
  };
  counter.reset = function() {
    currentCount = 0;
  };
  return counter;
}
var counter = makeCounter();
alert( counter() ); // 1
alert( counter() ); // 2
counter.reset();
alert( counter() ); // 1
Ведь здесь counter.set, counter.reset , не window.set и window.reset