Jump to content


Photo

Uso De Parenteses


  • Faça o login para participar
9 replies to this topic

#1 ph_Rodrigues

ph_Rodrigues

    Jesus, take me back !!!

  • Usuários
  • 322 posts
  • Sexo:Masculino
  • Localidade:Goiânia-GO

Posted 12/05/2008, 18:04

Boa tarde pessoal, tudo bem?

Estava olhando o código do JQuery e do AdSense (entre outros) e percebi que vários usam essa estrutura:

(function(){
// ...
})()

Alguém sabe pra que servem estes parênteses que eles colocam no inicio o fim do código? :blink:

[]'s.. :D

Edição feita por: ph_Rodrigues, 12/05/2008, 18:05.

Pedro Henrique de M. Rodrigues <GO-Goiânia>

<----------- JESUS, O PÃO DA VIDA!!! ----------->

Zaplim - Soluções em Internet
Portal Veste Moda Brasil

#2 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 13/05/2008, 10:52

Na verdade, você está perguntando 2 coisas...

function () { }

Isso aí se chama "função anônima". É uma função como qualquer outra, a diferença é que (conforme o nome diz) não tem nome, por isso dos () apenas, sem nada antes.

Agora, os parênteses externos são devido à função que contém a função anônima. Entendeu? Vou exemplificar:

No caso do JQuery, se usa a função window.addEvent();, tu já deve ter reparado. Então aquela função anônima, entra dentro dessa função, ficando assim:

window.addEvent('domready', function(){
//aqui entram outros atributos, e etc, dos plugins do JQuery
});

É isso aí :P

Função dentro de função.

Edição feita por: Firehalk, 13/05/2008, 10:53.

BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#3 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 14/05/2008, 14:16

Na verdade isso é um block scope ... ^.^

Muito usado em linguagens como C++ ... você pode executar um bloco de código sem influenciar variáveis, etc, fora daquele escopo.

Repare também os 2 parênteses no final:
(//...)()

Significa que o conteúdo será executado imediatamente ao ser lido pelo parser do javascript.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#4 ph_Rodrigues

ph_Rodrigues

    Jesus, take me back !!!

  • Usuários
  • 322 posts
  • Sexo:Masculino
  • Localidade:Goiânia-GO

Posted 15/05/2008, 12:06

Estava fazendo alguns testes e percebi isso mesmo bimonti, que o código é executado logo após ser lido. Isso é causado pelos () no final?
Outra coisa, estava com problemas ao usar funções definidadas dentro desses parenteses. Ex:
(function () {

var foo = function()
{
	alert('foo');
}

})()

// como acessar foo aqui? Simplesmente chamar
// foo(); produz erro (função não encontrada)

Alguma idéia!?

Obrigado desde já! ;DD
abraços
Pedro Henrique de M. Rodrigues <GO-Goiânia>

<----------- JESUS, O PÃO DA VIDA!!! ----------->

Zaplim - Soluções em Internet
Portal Veste Moda Brasil

#5 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 15/05/2008, 12:30

Dá erro porque ela simplesmente não existe fora daquele escopo. Seria usado quando você quer chamar essa função somente uma vez e não adicioná-lo ao scope chain da página. Ela será executada e não vai ficar na memória.

Para chamá-la seria dessa forma:
var foo;
(function () {

foo = function()
{
	alert('foo');
}

})()

foo();


Aí eu acho que funciona, mas não tem nexo. É mais indicado fazer da forma convencional. Se quiser que ela seja executada assim que for lida é só fazer assim:
var foo = function (){
	alert('ABC');
}();

Entendeu ?!
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#6 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 25/09/2017, 21:57

Viagra Verschiedene Starken Ordina Cialis Online Best Price Ed Medications cialis Amoxicillin Effect On Birth Control Xenical In Spain For Sale
Online Canadian Pharmacy Como Comprar Cialis En Espana buy cialis Acheter Xenical Suisse Viagra Soft Viagra Vente Libre Pays
How To Buy Clobetasol Eczema Amoxicillin Good For Prosthesis cialis Propecia Ville

#7 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 09/10/2017, 21:27

Buy Cheap Viagra Online Usa Viagra O Levitra viagra Buy Gonorrhea Treatment Online Usa Rhine Inc Palghar India
Priligy Erfarenheter viagra Kamagra Cialis Bestellen Cialis E Occhio
Wirkung Von Viagra Forum Buy Priligy Thailand Letrozole buy cialis Costo Del Levitra Achat Cialis Generique Belgique
Amoxicillin Dosage For 45 Pound Child Venta De Viagra Farmacias Fedex Shipping Amoxicilina Website Express Delivery Aberdeenshire viagra online prescription Buy Colchicine 0.5 Mg Europe
How Cau You Order Levitra On Line viagra Propecia Pas Cher Marseille Amoxil 875mg Isotretinoin 10mg where to buy

#8 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 25/10/2017, 05:41

Levitra Tempi Di Reazione viagra online Amoxicillin And Staph Infection Cialis Uso Prolungato
Viagra Cubano Ppg Propecia Dosis cialis Pill Identifier Amoxicillin 500 Cialis Gunstig Mit Rezept Cialis Venta Libre

#9 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 06/11/2017, 00:14

24 Hour Shipping Viagra Propecia Medicamento Pflanzliches Viagra Bestellen vardenafil in osterreich erhaltlich Buying Genuine Viagra No Procription
Amoxicillin Bioequivalence viagra Cialis Viagra Effets Secondaires
Cialis 5 Mg Indicazioni Precio Del Levitra levitra a precios baratos Avanafil Price Levitra Prix Belgique

#10 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 29/11/2017, 03:05

Viagra Per Ansia Buy Alli Online viagra Cialis Billig Acheter Cialis Sans Ordonnance Ligne Hydrochlorothiazide
Propecia Configurar viagra online pharmacy Amoxicillin Dosage And Administration 1063 Staxyn
Cialis 20 Mg Si Puo Dividere buy viagra online Viagra Vente Libre Andorre Cialis 20mg Vs 10mg




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq