如何在javascript中执行我的Add函数
我想用下面的代码执行我的如何在javascript中执行我的Add函数,javascript,Javascript,我想用下面的代码执行我的add函数。但是我没有得到正确的语法 我已经试过了x.add(3,4)和x().add(3,4),但是没有用。 请告诉我哪里出了问题 <html> <body> <p> After a function has been stored in a variable, the variable can be used as a function: </p> <p i
add函数
。但是我没有得到正确的语法
我已经试过了x.add(3,4)
和x().add(3,4)
,但是没有用。
请告诉我哪里出了问题
<html>
<body>
<p>
After a function has been stored in a variable,
the variable can be used as a function:
</p>
<p id="demo">
hello
</p>
<script>
var x = function () {
var add = function(a, b) { return a + b };
var mul = function(a, b) { return a * b };
}();
document.getElementById("demo").innerHTML = x.add(3,4);
</script>
</body>
</html>
函数存储在变量中后,
该变量可用作函数:
你好
var x=函数(){
var add=函数(a,b){返回a+b};
var mul=函数(a,b){返回a*b};
}();
document.getElementById(“demo”).innerHTML=x.add(3,4);
如果要将公共
变量声明到构造函数
中,请使用此
。并确保放置new
以创建new
您的构造函数的实例
var x=新函数(){
this.add=函数(a,b){返回a+b};
this.mul=函数(a,b){返回a*b};
};
控制台日志(x.add(1,3));
console.log(x.mul(5,3))
这里要做的是定义一个名为x
的函数,并在该函数中定义两个变量,分别名为add
和mul
。由于JavaScript在处理函数时遵循的规则(特别是在函数上下文中,请参阅本节),这些变量在函数之外是不可访问的。要访问它们,您需要使用函数返回定义它们的对象:
var x = function() {
var add = function(a,b){return a + b};
var mul = function(a,b){return a * b};
return {
add: add,
mul: mul
};
}
现在可以通过调用函数来访问这些值,该函数将返回以下两个值:
var y = x();
document.getElementById("demo").innerHTML = y.add(3,4);
在其他函数中定义的函数不会自动供外部代码使用。它们的默认值是与任何其他局部变量存在相同的持续时间,当外部函数完成执行时,可用于垃圾收集
要保留它们,您需要指定如何使它们可用。其中一个选项是返回它们,添加一个结构来保存它们:
var x = function () {
return {
add: function(a,b){return a + b},
mul: function(a,b){return a * b},
};
}();
不过,至少到目前为止,外部功能并非绝对必要,可能会被删除:
var x = {
add: function(a,b){return a + b},
mul: function(a,b){return a * b},
};
似乎您希望x
成为一个对象。正确的语法是
var x = {
add: function(a,b){return a + b},
mul: function(a,b){return a * b},
};
或者,如果您坚持使用(因为您在该范围内做的事情比您展示的要多),那么您会这样做
var x = (function () {
function add(a,b){return a + b}
function mul(a,b){return a * b}
return {add, mul};
}());
请参见下面的注释:
//您可以将函数设置为“构造函数”,
//这意味着将从
//函数的调用。标准惯例是使用
//PascalCase用于构造函数函数名:
函数X(){
//稍后,当创建此对象的实例时,
//对象的成员可以通过标识
//它们与“this”对象实例一起使用。
//关于这一点,还有更多需要了解的(即,房地产
//正如我在这里展示的那样创建,但是方法通常是
//添加到函数的原型中)。
this.add=函数(a,b){返回a+b};
this.mul=函数(a,b){返回a*b};
}
//使用函数构造对象实例
让实例=新的X();
//然后,使用该实例及其关联成员。
//仅供参考:在未获取/设置时不要使用.innerHTML
//任何HTML。将.textContent用于原始文本。
document.getElementById(“demo”).textContent=“Add:”+instance.Add(3,4);
document.getElementById(“demo”).textContent+=“| Multiply:”+instance.mul(3,4)代码>
函数存储在变量中后,
该变量可用作函数:
hello
使用this.add
和var mul
更改var add
和var mul
为什么要将add
和mul
放在函数x
中?您只需去掉x
,将add
和mul
函数分开,然后运行add(3,4)
或mul(3,4)
,而您的代码可能会提供有效的解决方案,您应该始终提供一个书面解释,并解释为什么它改进了OP的问题。在这种情况下,这不是解决此特定问题的好方法,因为函数不再存储为普通变量@Bergi你能解释一下原因吗?@MaheerAli请按照链接详细解释