如何访问父对象的变量范围?

时间:2017-05-10 16:48:32

标签: javascript jquery module

我刚开始学习模块Javascript。我有一些叫做浮标的物体,有多种类型的浮标(这些基本上是弹出窗口)。

实时聊天是其中一种类型。

我正在将我的所有代码转换为更像模块的结构,并且遇到了一些问题。

代码如下,我将对需要注意的部分发表评论。

查看变量$liveChat内的cacheDom函数。

我将此liveChat作为子元素(反对将其所有方法放在父类中)的原因是因为它将具有唯一的方法,这些方法不适用于父类中的所有内容。请记住,我将有多种类型的浮标。 LiveChat是我迄今为止创建的唯一一个。我将在liveChat中添加的这些功能将成为liveChat浮标的独特功能。

/* Buoy */
(function{
    var buoy = {
        init: function () {
            this.liveChat.init();
            this.cacheDom();
            this.bindEvents();
        },
        cacheDom: function () {
            this.liveChat.cacheDom();

            this.$document = $(document);

            this.$buoyContainer = $("#buoy-container");
            this.$buoy = this.$buoyContainer.find(".buoy");
            this.$addDream = this.$buoyContainer.find(".buoy.addDream");
            this.$scheduleDream = this.$buoyContainer.find(".buoy.live-chat");
        },
        bindEvents: function () {
            this.liveChat.bindEvents();
            /* Remove Focus */
            this.$document.on("click", this.removeFocusAll.bind(this.$buoy));
            /* Add Focus */
            this.$buoy.on("click", this.addFocus);
            this.$liveChat.on("click",)
        },
        addFocus: function () {
            this.addClass("focus");
        },
        removeFocus: function () {
            this.removeClass("focus");
        },
        /* Live chat */
        liveChat: {
            init: function () {

            },
            cacheDom: function () {
                //This is where I need to access the parent variable "$document" which is initialized in the parents cacheDom method
            },
            bindEvents: function () {

            }
        }
    }
    buoy.init();
}());

1 个答案:

答案 0 :(得分:0)

您可以将app.run(threaded=True)传递给孩子,然后将其设为this

this.parent