簡體   English   中英

為什么console.log()僅打印成員字段?

[英]Why does console.log() only print member fields?

如果我運行以下命令:

var T = function(x, y) {
   this.x = x;
   this.y = y;
}

T.prototype.foo = function() {
   console.log("test");
}

var o = new T(7,4);

o.foo();
console.log(o);

使用node我得到:

test
{x: 7, y: 4}

但是如果我在chrome中運行它,則會得到:

test
T {x: 7, y: 4, foo: function}

這僅僅是log()方法實現的一種變化,還是為什么輸出中忽略了prototype方法? 如果這不僅是log()實現的情況,這是否意味着如果只想保存字段,則將包含字段和方法的對象保存到mongodb中將是安全的,即,您可以依賴未考慮的方法嗎?

console.log在不同環境中的實現方式有所不同。 那是因為它所做的僅在查看其結果的工具的上下文中才有意義。 在Chrome中,您有一個檢查器,可以深入到對象中。 在節點中,它將文本輸出到命令行,而您在命令行中的能力要低得多。

這純粹是內部的實現細節console.log ,你應該使用實現的差別承擔有關對象的屬性在其他環境中是如何工作的,就好說了......寫對象的MongoDB什么。

這只是日志實現差異(實際上更准確地說是檢查差異)。

暫無
暫無

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

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