使用new运算符调用函数不返回值?

时间:2017-01-26 15:42:25

标签: javascript object

我有以下javascript代码



    var foo = function(a, b) {
      var sumn;
      sumn = a + b;
      return sumn;
    }
    
    var k = new foo(2, 3);

    console.log(k);




这不是作为总和的返回值?这是什么解决方案?

4 个答案:

答案 0 :(得分:3)

您无需使用new关键字。

新代码:

var foo = function(a,b){
   var sumn;
   sumn = a+b;
   return sumn;
}
var k = foo(2,3);

new关键字用于创建对象的新实例。您可以在此处详细了解:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new

答案 1 :(得分:2)

您需要使用this

保留对您创建的对象的引用
var foo = function(a,b){
  this.sumn = a+b;
}
var k = new foo(2,3);
console.log(k); // > foo {sumn: 5}
console.log(k.sumn);

答案 2 :(得分:1)

你不需要新的来调用一个函数。

 var foo = function(a,b){
  var sumn;
  sumn = a+b;
  return sumn;
}
var k = foo(2,3);
console.log(k);

答案 3 :(得分:1)

下面的示例调用该函数,执行添加并返回值。你不需要" New"关键字

如下例所示,输出为7。

<!DOCTYPE html>
<html>
<body>




<p id="demo"></p>

<script>
function foo(a,b) {
    return a+b;
}
document.getElementById("demo").innerHTML = foo(4, 3);



</script>

</body>
</html>