自我文档这个顶级窗口

Sha*_*haz 4 html javascript dom

假设我有一些随机代码,如下所示:

<script>

    this.fn = (function() {
        var element = document.createElement("div");
        element.innerHTML = Object.keys(self) + 
            "<br />" + Object.keys(window) +
            "<br />" + Object.keys(top);    

        self["document"].body.appendChild(element);
        return arguments.callee;
    })();

</script>
Run Code Online (Sandbox Code Playgroud)

不仅有与上面的代码做的,有什么区别:
Self,Document,This,Top,Window

每个人的最佳用例是什么?

Oli*_* L. 10

self&window:它们都引用脚本所在和运行的当前窗口(或框架).请参阅此处了解详细信息和示例

document:引用DOM容器,使您可以访问标题和正文内容.请参阅此处了解详细信息和示例

this:引用执行代码的JavaScript对象.直接在<script>标签内编写的JavaScript代码和函数都可以this参考window.如果对象的函数需要在同一个对象中调用方法,请使用this.method_name();.

top:引用window帧层次结构中的最顶层对象.如果您使用框架并希望从子框架内部操纵整个框架集窗口,请使用top,例如top.close();关闭包含所有框架的当前窗口.