• js函数获取ev对象


    今天工作中遇到一个问题,就是平时获取一个ev(event)对象时候一般直接在调用方法里面写一个ev参数,即可直接拿到这个对象,但是有时候会遇到函数调用不是直接加在一个dom对象的后面,如:

    var oDiv = document.getElementById('box');

    oDiv.onclick = function(ev) {

    var x = ev.pageX;

    ...

    };

    而是写在函数属性中,如:

    var oDiv = document.getElementById('box');

    oDiv.setAttribute('onclick','fn()');

    function fn() {

    };

    这个时候是无法直接在函数里面传参的,只能通过如下方式获取该对象

    function fn() {

    var ev = arguments.callee.caller.arguments[0];

    1.当函数被调用时,它的arguments.callee对象就会指向自身,也就是一个对自己的引用。
    由于arguments在函数被调用时才有效,因此arguments.callee在函数未调用时是不存在的(即null.callee),且解引用它会产生异常。

    2.在一个函数调用另一个函数时,被调用函数会自动生成一个caller属性,指向调用它的函数对象。如果该函数当前未被调用,或并非被其他函数调用,则caller为null。

    };

  • 相关阅读:
    STL_算法_05_集合算法
    STL_算法_04_算术和生成算法
    STL_算法_03_拷贝和替换算法
    STL_算法_02_排序算法
    STL_算法_01_查找算法
    STL_容器使用时机
    STL_容器共通能力
    Qt5_选择文件对话框
    Qt5_当前exe所在路径
    Java 静态代理和动态代理
  • 原文地址:https://www.cnblogs.com/shenwh/p/10041452.html
Copyright © 2020-2023  润新知