Qual é a diferença entre uma função e um objeto?

Para responder a essa pergunta, não é necessário dizer que, por exemplo, em JavaScript, uma função é um objeto. Isso é confuso, eu sei, mas é uma das exceções.

Objetos podem conter funções como métodos do objeto. Um método é usado para acessar propriedades do objeto. Métodos são usados ​​para alterar o estado do objeto.

Uma função independente é usada para interagir entre dados e máquina. Use uma função para calcular, por exemplo, ou para sair do aplicativo. Sempre que algo acontece no aplicativo, uma função / método é a causa. Existem muitas funções internas, que são usadas mesmo sem pensar que é uma função.

Um objeto é um contêiner, um esquema para abstrair o mundo real para o mundo da máquina. Pegue uma coisa e faça dela um objeto. Realmente tente, é divertido e você verá que tudo no mundo real pode ser definido como um objeto no mundo das máquinas. O objeto tem propriedades, como altura, peso, sexo, idade, etc. para pensar no humano como um objeto e métodos / funções como Crescer, Comer, Falar, HaveSex, etc.

Os objetos podem herdar para filhos e esses filhos podem estender o objeto pai. Outros, como seres humanos reais, o objeto humano do mundo das máquinas pode herdar de apenas um pai. Mas mesmo aqui há exceções em alguns idiomas.

Todas as folgas excluídas? Codificação bem feliz.

Para responder a essa pergunta, não é necessário dizer que, por exemplo, em JavaScript, uma função é um objeto. Isso é confuso, eu sei, mas é uma das exceções.

Objetos podem conter funções como métodos do objeto. Um método é usado para acessar propriedades do objeto. Métodos são usados ​​para alterar o estado do objeto.

Uma função independente é usada para interagir entre dados e máquina. Use uma função para calcular, por exemplo, ou para sair do aplicativo. Sempre que algo acontece no aplicativo, uma função / método é a causa. Existem muitas funções internas, que são usadas mesmo sem pensar que é uma função.

Um objeto é um contêiner, um esquema para abstrair o mundo real para o mundo da máquina. Pegue uma coisa e faça dela um objeto. Realmente tente, é divertido e você verá que tudo no mundo real pode ser definido como um objeto no mundo das máquinas. O objeto tem propriedades, como altura, peso, sexo, idade, etc. para pensar no humano como um objeto e métodos / funções como Crescer, Comer, Falar, HaveSex, etc.

Os objetos podem herdar para filhos e esses filhos podem estender o objeto pai. Outros, como seres humanos reais, o objeto humano do mundo das máquinas pode herdar de apenas um pai. Mas mesmo aqui há exceções em alguns idiomas.

Todas as folgas excluídas? Codificação bem feliz.

Uma função trava você em uma suposição de que não é tão fácil reverter ou alterar. A desvantagem essencial de usar uma função em vez de um objeto é ter que alterar continuamente as informações que permanecem não compartimentadas e globais.

Tem sido uma tendência comum que o código processual precise passar por grandes reescritas, também chamadas de 'refatoração', mais tarde no processo inicial de codificação ou, pior ainda, depois que o sistema codificado for ativado. Isso ocorre porque, geralmente, uma função converte informações de entrada, simples (ou "primitivas") e globais que são retornadas em outra forma primitiva que ainda é global. Por primitivo, quero dizer que são apenas dados puros na forma de texto ou números, em vez de um objeto. Ou uma função também pode receber ou retornar uma estrutura de dados inicializada organizada em alguma estrutura dimensional.

Uma função é, portanto, considerada mais 'quebradiça' em vez do conceito mais dissociado de um objeto que contém suas próprias variáveis ​​e funções locais. E então, se necessário, algumas dessas variáveis ​​locais podem ser alteradas com segurança posteriormente, por sua vez, em suas próprias classes instanciadas, em vez de tipos de dados primitivos. Um objeto também é considerado uma classe instanciada.

Outra maneira de olhar para um objeto é considerá-lo um "mini programa" contido no programa "principal". O programa principal é chamado de cliente dentro do paradigma de Programação Orientada a Objetos (OOP). A implicação é que o cliente deve usar apenas os "mini programas" para executar a maior parte do trabalho e apenas facilitar a comunicação entre eles com uma quantidade mínima de logística.

É por isso que há muito mais suporte para OOP do que apenas estilos mais complexos de codificação processual. A POO é considerada a solução de próximo nível para os problemas encontrados na codificação no estilo processual.