11 个回答

只是型参简写,用法你得看具体实现的代码。。。

e是一个形参,代表event,事件对象。。你可以console,log(e),试试。
比如说点击事件,你需要获取被点击对象是谁?或者点击的(x,y)坐标等等,事件对象就可以派上用场啦

这里的e是参数的名字。

参数分为
形参:形式参数,相当于函数声明的局部变量,实参把自己的值赋给形参,形参就保存了这个值,形参只能在函数内部使用。
实参:实际参数,函数的调用者把值放在实参里面,传给函数的形参。

所以,实参、形参就相当于一个管道,一个接口,使调用函数的人可以通过这种方式把要计算的值传给函数去计算。

你的举例中,写代码的人为了方便起见,给每个函数都写了个名字为e的形参,至于为什么每个函数中e的用法不同,是因为函数本身干的工作就不同,所以他们使用e的方式就不同。

其实,javascript中形参和实参没有任何关系,你可以定义2个形参,实际传入5个实参,因为js的函数是读取arguments对象来获取参数的,而不是从命名形参读取参数。所以,函数中写不写形参,写几个形参其实不重要,这个你以后可以学到。

补习下 形参 实参 的概念

只是一个形参,名字可以任意的,这里只是用的e而已

其实就是你传入函数的第一个参数,只是命名成e而已

我也来扯两句哈! function里面的e 就当作参数,调用这个函数时,把这个参数给上即可。个人理解^~^

就是个瞎写的占位参数,你可以把它写成first_blood,double_kill,重要的是你调用的时候写在括号里面的东西

在定义函数function的括号里面,是形式参数,是随意命名的;当你在调用这个function时,括号里面使用的时实际参数。
定义一个方法:

function add(a,b) {
    
    return a+b;

}

使用该方法:

var sum = add(2,3);
console.log(sum); //计算2+3的值

楼主大抵是不太清楚这些函数是怎么被调用的。

楼主列出的都是事件处理函数,也就是说,你写一个 onEdit (e) { ... } 的函数,并不需要你手动去调用这个函数,而是浏览器或者某个库自动在某个时刻调用你预先定义的 onEdit 函数。

那么就会出现一个问题,不同的事件触发的时候,你需要获取的数据是不同(比如鼠标和键盘事件的数据肯定就不同),所以他们调你的 onEdit 函数的时候,会把「e」作为参数传入,这样你就能获取不同事件的数据了。

我估计是回调函数没理解好,
举个例子:

//Array.prototype.sort的一种用法是传进一个函数判断大小返回布尔值
var arr = [5,2,4,3]

var sortFunc = function(a, b) {
    return a - b
}

console.log(arr.sort(sortFunc)) //排序好了

//那sortFunc里面的a,b从哪里来的?
//在Array.prototype.sort里面有具体实现,
//糟糕,写不出冒泡排序...
Array.prototype.sort = function(fn) {
    for(var i=0; i<this.length; i++) {
        for(var j=i+1; j<this.length;j++) {
            //很难受
            var bool = fn(this[i], this[j]) > 0
            if(bool) {
                //换
            }
        }
    }
}
//重点在于fn是Array.prototype.sort的形参,实参是sortFunc,
//sortFunc接收俩参数,这是Array.prototype.sort决定的,因为其调用
var bool = fn(this[i], this[j]) > 0//这句话就是调用了sortFunc,
//this[i,j]分别对应sortFunc形参的ab,

以上是蒙的sort代码,错了大家可以喷我。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏