js构造了一个函数,内部有两个变量,我调用的时候可以只传一个进去吗。

js中定义了一个move(first,modify)方法,需要传入first,modify。因为我想重复使用move函数可是有的地方不需要modify,有的地方需要,传空值的话也不行,无法运行。

有什么方法能不需要传入固定个数的参数运行嘛。

调用
function moveTest() {
    var first = document.getElementById(id);
    var modify = {
        y: function () {
           statements
        }
    };
   move(first, modify); //这里一定要两个参数不然运行不了。
}
方法
    function move(first, modify) { 
        first.onmousedown = function (e) {      //把onclick改成onmouseover就是一获得焦点图片就跟随鼠标移动,onmousedown鼠标拖动效果
            modify.y(); //方法
            var x = e.clientX - first.offsetLeft;
            var y = e.clientY - first.offsetTop;
            document.onmousemove = function (e) {
                var left = e.clientX - x;
                var top = e.clientY - y;
                first.style.left = left + 'px';
                first.style.top = top + 'px';

            document.onmouseup = function () {  //鼠标松开时释放函数,如果需要拖至指定位置可在此添加运算逻辑;
                document.onmousemove = null;
                document.onmouseup = null;
            }
        }
    },
回复
阅读 2.8k
3 个回答

谢邀

我看你 move 里就是调了一下这个modify.y();,如果没有,就会报错,那可以先判断一下mdify是否存在,存在再执行 y 方法,这样就不会抛出错误了。

if(mdify){
    modify.y(); //方法
}

参数用对象呀 多舒服

function move(obj){}

调用:

obj = {
    first:'',
    modify:''
}
move(obj);
新手上路,请多包涵

可以用ES6语法对函数参数传一个默认值,或者参考白吟灵大佬的方法,在函数中进行判断

宣传栏