在控制台中,当我定义一个构造函数,然后在事后向它添加一个属性时,运行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]