В чем разница между свойствами конструктора, которые видны в `console.log`, и свойствами, которые видны в`console.dir`?
В консоли, когда я определяю функцию конструктора, а затем добавляю к ней свойство после того, как console.log(myConstructor)
не раскрывает эту собственность. Тем не менее, когда я бегу console.dir(myConstructor)
Теперь я могу видеть добавленную мной собственность, а также многие другие. В чем разница между свойствами, которые я вижу с console.log
а те, которые я не могу? Существуют ли конкретные термины или словарь, которые можно использовать, чтобы различать эти два типа свойств?
function myConstructor(){
this.sayHi = function(){
console.log("hey")
}
}
myConstructor.boop = "thing"
console.log(myConstructor)
=> ƒ myConstructor(){
this.sayHi = function(){
console.log("hey")
}
}
console.dir(myConstructor)
=> ƒ myConstructor()
boop : "thing"
arguments:null
caller:null
length:0
name:"myConstructor"
prototype:{constructor: ƒ}
__proto__:ƒ ()
[[FunctionLocation]]:VM123:1
[[Scopes]]:Scopes[1]
1 ответ
Пожалуйста, найдите ссылку на console.dir, чтобы понять, почему это происходит: https://developer.mozilla.org/en-US/docs/Web/API/Console/dir
console.log записывает все, что вы там выбросили (в вашем случае это будет запись функции), а dir - свойства объекта; из документов:
Другими словами, console.dir - это способ увидеть все свойства указанного объекта javascipt в консоли, с помощью которого разработчик может легко получить свойства объекта.