[英]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.