我想知道是否可以通过这种方式将参数从一个函数传递给另一个函数(比如说从f1到f2):
f1 = function(arg){
f2(arg);
}
f2 = function(arg){
//doing sth with passed argument
}
错了吗?还是始终使用.apply()方法更好/更安全,即使我们没有传递数组也是如此? 为了澄清,仅将参数传递给f1,并且仅从f1调用f2。
答案 0 :(得分:0)
这完全没错。这种情况一直发生。
您应该使用apply()
的唯一原因是是否需要执行此操作,例如更改上下文(this
的值)或将数组作为单独的参数传递。您在这里没有做任何这样的事情,因此绝对没有理由变得更复杂。
答案 1 :(得分:0)
不,这没错。
通过函数传递参数是JavaScript作为一种语言的基本方面之一。它可以帮助您处理复杂的应用程序并将其分为可管理的块,以提高清晰度和可维护性。
.apply
在您要调用具有特定作用域的函数时很有用(这就是第一个参数为this
的原因),并且它需要使用数组或类似数组的辅助参数作为要使用的参数在功能内。它是一个类似数组/数组的事实,对于您作为程序员或您要调用的函数来说,没有任何区别。没什么特别的,只是apply
期望的格式。
答案 2 :(得分:0)
当您在JavaScript中声明参数时,它就像变量一样被使用,您可以像使用其他变量一样使用它:重新分配值,将其传递给另一个函数,等等。.apply(this, arguments)
也是可行的,但事实并非如此。 必要,除非您需要设置被调用函数的this
或传递任意数量的参数。
答案 3 :(得分:0)
apply()方法将参数作为数组。
如果要使用数组而不是参数列表,那么apply()方法非常方便。
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Functions</h2>
<p>In this example the fullName method of person is <b>applied</b> on person1:</p>
<p id="demo"></p>
<script>
var person = {
fullName: function(city, country) {
return this.firstName + " " + this.lastName + "," + city + "," + country;
}
}
var person1 = {
firstName:"John",
lastName: "Doe",
}
var x = person.fullName.apply(person1, ["Oslo", "Norway"]);
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
如果您使用两个函数并在另一个函数中调用一个:
function function_one() { function_two(); }
function function_two() {
//enter code here
}
函数参数是函数定义中列出的名称。
函数参数是传递给函数(并由函数接收)的实际值。
参数规则
JavaScript函数定义未指定参数的数据类型。
JavaScript函数不会对传递的参数执行类型检查。
JavaScript函数不会检查收到的参数数量。
参数默认值
如果使用缺少参数的函数调用(小于声明的函数),则缺少的值将设置为:undefined
更多信息JavaScript,您可以阅读此链接 https://developer.mozilla.org/it/docs/Web/JavaScript