簡體   English   中英

為什么`window.console.log(this)`不記錄控制台對象?

[英]Why does `window.console.log(this)` not log the console object?

我只是進入高級上下文實例化,使用原型鏈等。

我很好奇如何創建window.console對象,以便函數log認為其上下文是窗口實例,而不是控制台。 這與Object.create new關鍵字有關,還是綁定/ self = this?

window.console有一個構造函數(Console),我很好奇,通過Window實例/上下文調用構造函數的最簡單方法是什么? 作為參數傳遞它? 如果Console是一個單獨的構造函數,我認為Window將是使用新上下文構造它的那個,而不是說

windowInstance.console.log = function (args) {

}.bind(windowInstance, args);

好看多了,比我想象這樣的布局,但不明白怎么this被路由

var window = new Window();
window.console.log(this); // logs window

function Window () {
    // this === window when constructed above
    this.console = new Console();
}

function Console () {
    this.log = function () {} // where this === window.console but log thinks it's window
}

謝謝

如果你有:

var obj = { hello: "world" };
console.log(obj);

您會為控制台顯示該對象感到驚訝嗎? 同樣,

console.log(this);

記錄的值this ,因為它是調用控制台功能之外 你不能強迫console.log()來記錄它認為的價值this是在自己的參照系; API中對此沒有任何規定(坦率地說,它不是很有用)。 但是,如果要記錄window.console對象的狀態,則可以:

console.log(window.console);

暫無
暫無

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

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