Jump to content
Fórum Script Brasil
  • 0

Construtores


vini_loock

Question

Olá galera,

estou estudando OO em javascript a um tempo, mas agora que resolvi criar uma simples 'biblioteca' que funcionaria como o $ da jquery, mas já me enrosquei logo no inicio.

Tenho esse código(o comentado é uma outra tentativa que falhou):

<html>
    <head>
        <title></title>
        &lt;script type="text/javascript">
            var $ = function(e){
                this.element = document.getElementById(e);
                this.html = function(){
                    return $.element.innerHTML;
                };
            };
            /*var $ = function(e){
                this.element.getElementById(e);
            };
            
            $.prototype = {
                html: function(){
                    return this.element.innerHTML;
                    //return $.element.innerHTML;
                }
            };*/
            
            window.onload = function(){
                var html = $('aaa').html();
                alert(html);
            };
        </script>
    </head>
    <body>
        <div id="aaa">
            <div id="teste">dasd</div>
        </div>
    </body>
</html>
Isso ai era para pegar o html da div#aaa, mas nada acontece. Eu imagino que seja por eu estar usando algo como 'hierarquia', mas eu não sei como poderia fazer, alguém da uma luz ai?! Vlw.[/quotebox] Edit.. Engraçado como as respostas vêm em situações que jamais imaginamos. Durante um sonho, lembrei que no php, quando queremos usar algo como: $obj->setName()->getName(); O equivalente em js: obg.setName().getName(); Nossos métodos, devem retornar eles mesmos, então assim o fiz. Mas agora a questão já é outra, como eu criarei um construtor para essa classe? Atualmente eu criei uma função chamada $, que retorna li.get(), que seria o construtor da classe, mas ao longo do tempo, conforme eu for desenvolvendo a biblioteca, eu precisarei acessar métodos específicos, como na jquery, para ajax usamos: $.ajax(); Logo, minha 'função construtora' não sevirá de nada. O código atualmente se encontra assim:
var lib = {
    element: null,
    get: function(e){
        this.element = document.getElementById(e);
        return this;
    },
    html: function(){
        return this.element.innerHTML;
    }
};

function $(e){
    return lib.get(e);
}

Edited by vini_loock
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...