В чем отличие свойств конструктора, которые отображаются в `console.log`, от свойств, которые видимы в` console.dir`? - PullRequest
0 голосов
/ 01 июня 2018

В консоли, когда я определяю функцию конструктора, а затем добавляю к ней свойство после факта, выполнение 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 Ответ

0 голосов
/ 01 июня 2018

Пожалуйста, найдите ссылку на console.dir, чтобы понять, почему это происходит: https://developer.mozilla.org/en-US/docs/Web/API/Console/dir

console.log регистрирует все, что вы там бросаете (в вашем случае это будет регистрировать функцию), а dir регистрирует свойстваобъекта;из документов:

Другими словами, console.dir - это способ увидеть все свойства указанного объекта javascipt в консоли, с помощью которого разработчик может легко получить свойства объекта.

...