javascript - 对 javascript 中的构造函数感到困惑

标签 javascript constructor

如果我遗漏了任何重要的甚至愚蠢的内容,请原谅。我正在尝试从对象打印构造函数的名称。我采用了两种方法。

第一种方法的代码如下,

var CF = function () {
   p1 = "";
   p2 = "";
}
var cf1 = new CF();
cf1.constructor.name

输出:

""

第二个代码,

function CF() {
   p1 = "";
   p2 = "";
}
var cf1 = new CF();
console.log(cf1.constructor.name);

输出:

CF 

我想你已经明白我想说的了。第一个 CF 的对象构造函数名称为 "",第二个输出为 CF

我试图知道下面的区别

var CF = function() { }
typeof CF;
function CF() { };
typeof CF

但不幸的是他们都输出了

"function"

为什么第一种方法会出现这种行为?有什么区别?

(我使用的是 Chrome 控制台)

最佳答案

第一个构造函数是匿名函数,这意味着它没有名称。第二个构造函数有一个允许打印其构造函数的名称。

关于javascript - 对 javascript 中的构造函数感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22169428/

相关文章:

javascript - 使用 Jquery 获取输入值数组

Java:使用一个类生成另一个类的对象

java - Java中使用变量调用构造函数而不引用显式类类型?

c++ - 使用基类静态常量变量构造基类,我可以这样做吗?

Javascript 构造函数 : cant call inside func

javascript - Android 旧版本是否支持 Android 应用程序中的 Webrtc 视频聊天

javascript - 在一个数据库字段中插入多个文本框的数据

Java构造器设计

javascript - 如何在 Node.js 中的 fs.readFile 中使用 'this' 引用

javascript - react 问题 : I tried file data set in state when upload file, 但它不起作用