Javascript 关于';新';和';这';操作人员

Javascript 关于';新';和';这';操作人员,javascript,Javascript,控制台中记录了什么 我正在准备javascript工作面试,遇到了一个小测验 这是令人困惑的 你能帮我解释一下发生了什么事吗? 返回的foo应该返回对象,而不是其中的值,也不是来自对象的调用 CareerCups应该有一些JavaScript。您还可以通过查看CodeWars来练习所学内容,并了解忍者是如何编写JavaScript代码的 如果将其复制到控制台中,则会使用logundefined。为什么会这样 构造函数返回自身,构造函数返回自身 这意味着您可以在foo前面写入new任意次数,并且它

控制台中记录了什么

我正在准备javascript工作面试,遇到了一个小测验

这是令人困惑的

你能帮我解释一下发生了什么事吗?

  • 返回的foo应该返回对象,而不是其中的值,也不是来自对象的调用

  • CareerCups应该有一些JavaScript。您还可以通过查看CodeWars来练习所学内容,并了解忍者是如何编写JavaScript代码的


  • 如果将其复制到控制台中,则会使用log
    undefined
    。为什么会这样

    构造函数返回自身,构造函数返回自身

    这意味着您可以在
    foo
    前面写入
    new
    任意次数,并且它永远不会返回
    foo
    的实例

    构造函数迭代
    x

    但是,每次调用构造函数时,即使没有
    new
    ,它也会迭代外部
    x
    变量。因此,如果在该函数之外访问
    x
    ,它将被迭代到调用
    foo
    函数的次数

    new
    可以调用无括号的构造函数

    编写
    newfoo
    会自动调用
    foo
    而不带任何参数,就像代码是
    newfoo()

    构造函数没有
    x
    属性


    console.log
    语句查找
    bar
    x
    属性时,它实际上是在
    foo
    函数对象上查找属性。该属性在
    foo
    上不存在,因此结果是
    undefined

    它不是以字符串表示形式返回函数本身吗?“function foo()…”@huseyintugrulbuyukisik no。它将函数作为函数对象返回。您不了解哪些部分?您可能想知道当您的
    从构造函数调用返回
    时会发生什么情况。您可以将其复制并粘贴到控制台中,以了解“控制台中记录了什么?”
    
    var x = 0;
    function foo() {
        x++;
        this.x = x;
        return foo;
    }
    var bar = new new foo;
    console.log(bar.x);