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;

            }

        }

    },


慕码人8056858
浏览 2017回答 3
3回答

慕沐林林

参数用对象呀 多舒服function move(obj){}调用:obj = {    first:'',    modify:''}move(obj);

MMTTMM

可以用ES6语法对函数参数传一个默认值,或者参考白吟灵大佬的方法,在函数中进行判断
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript