JavaScript-Disqus如何处理其“;disqus_config”;包含未定义属性的函数

JavaScript - How does Disqus handle its "disqus_config" function which contains undefined property?

本文关键字:config 包含 未定义 函数 属性 disqus JavaScript-Disqus 何处理 处理      更新时间:2023-09-26

以下是Disqus"通用代码"的一部分:

var disqus_config = function () {
    this.page.url = PAGE_URL;  // Replace PAGE_URL with your page's canonical URL variable
    this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};

我不想知道Disqus是如何处理这个函数的,因为pageundefined,所以我们不能访问identifierurl。我测试了几个例子:

disqus_config();
console.log(disqus_config.page);
var a = new disqus_config();

但我仍然不明白Disqus是如何处理这个undefined元素的。

据我所见,在embed.js代码中,它是这样的:

var _config = window.disqus_config;
window.disqus_config = function () {
    if (_config) _config.call(this);
    // Other stuff here....
};

因此,在替换它之前,disqus会检查它是否存在,然后在自己的范围内运行它。