簡體   English   中英

OO(面向對象)javascript

[英]OO(object-oriented) javascript

我在JavaScript方面有相當豐富的經驗,對於這個新項目(關於盈利概念的博客,請訪問CMS),我想我應該加倍努力,並以MVC方式編寫JavaScript。 我一直在使用一些骨干和下划線,但它並不是在精神上點擊。 無論如何,我已經寫了一些代碼來處理一些事件/效果,但這根本行不通。 如果有人能解決我,我將非常感激。

// Semi Perfect grade 0 JS - Golden age
//partial View Objects | Events
var pshare_dock = {
    actor: $("#share_dock"),
    drag: function () {
        this.actor.draggable();
    }
}
pshare_dock.expand = function () {
    this.actor.dblclick(function () {
        $(this).toggleClass("share_close");
    });
}
var pmenu = {
    hover: function () {
        $("ul.drop li.drop").hover(function () {
            $(this).find('ul').fadeIn(1);
        }, function () {
            $(this).find('ul').hide();
        })
    },
    navigate: function () {
        $("a.ajx").click(function (e) {
            var link;
            var container = $("#content_pane");
            e.preventDefault();
            link = $(this).attr("href") + "#content_pane";
            container.load(link);
        })
    }
}
var pcontent_pane = {}
var ppost = {}
var pdatabase_entry = {}
//Views
var Homepage = function () {
        this.share_dock = function () {
            new pshare_dock();
        }
        this.menu = function () {
            new pmenu();
        }
        this.content_pane = function () {
            new pcontent_pane();
        }
        this.posts = function () {
            new ppost();
        }
    }
    //Controller
var GoldenAgeRouter = Backbone.Router.extend({
    routes: {
        "!/": "defaultRoute",
        "*actions": "defaultRoute"
    },
    defaultRoute: function (actions) {
        var homeView = function () {
                new Homepage();
            }
    }
})
$(document).ready(function () {
    var Golden_age = function () {
            new Homepage();
        }
})

問題本質上是這到底有什么問題?

您將實例化包裝在匿名函數中,但未調用它們:

var Golden_age = new Homepage(); // Invoked.

var Golden_age = function(){ new Homepage(); } // Stored function, not invoked.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM