我已经安装了 Visual Studio Code 和 Node.js,它们基本上都可以工作,但自动完成功能不(完全)工作。如果我输入“控制台”。我确实看到了一个列表弹出窗口。同样,如果我这样做: const http = require("http"); http。
但是如果我简单地输入“过程”。我什么也没看到。事实上,只要我输入'.' 代码自动完成“过程”到“处理指令”。我期待看到 argv 弹出,以及你在 Node 提示符下键入“process”时看到的所有其他内容。
但这是我输入“过程”时看到的。(我必须将自动完成的“ProcessingInstruction”改回“process”):
嘘——它不知道“过程”!:(
是的,我之前见过这个问题并得到了回答.但这是我仍然不明白的:
如果我创建一个构造函数,并且不覆盖函数的prototype
属性,那么我们将自动constructor
属性挂在函数的prototype
属性上.那是MyConstructor.prototype.constructor === MyConstructor
=>真的.大.但是现在当我prototype
用自己的对象覆盖并且不修补constructor
属性时会发生什么?constructor
现在不存在prototype
,如果只引用原型链,那就是MyConstructor.prototype.constructor === Object
=> true.精细.所以...
为什么在Javascript调试器(如Chrome)中,如果我用自己的对象覆盖构造函数的原型,然后新建一个构造函数的实例,然后在命令行上键入该实例变量,Chrome很高兴地告诉我类型?怎么知道??? 即我能做些什么来通过代码找出相同的东西?
简单的repro:
> function Foo() {}
undefined
> Foo.prototype.constructor === Foo
true
> Foo.prototype = {}
Object
> Foo.prototype.constructor === Foo
false
> f = new Foo()
Foo
> f
Foo
Run Code Online (Sandbox Code Playgroud)
它是纯粹的调试器魔术吗?