Benjamin

静以修身,俭以养德,非澹薄无以明志,非宁静无以致远。
随笔 - 388, 文章 - 0, 评论 - 196, 引用 - 0
数据加载中……

js获取当前文件名、行号、函数名

Object.defineProperty(global, '__stack', {
  get: function(){
 var path = require('path');
    var stackReg = /at\s+(.*)\s+\((.*):(\d*):(\d*)\)/i;
    var stackReg2 = /at\s+()(.*):(\d*):(\d*)/i;
    var stacklist = (new Error()).stack.split('\n').slice(3);
    var s = stacklist[0];
    var sp = stackReg.exec(s) || stackReg2.exec(s);
    var data = {};
    if (sp && sp.length === 5) {
        data.method = sp[1];
        data.path = sp[2];
        data.line = sp[3];
        data.pos = sp[4];
        data.file = path.basename(data.path);
    }
 
    return data;
  }
});
//行号 
Object.defineProperty(global, '__line', {
  get: function(){
    return __stack['line'];
  }
});
//文件名
Object.defineProperty(global, '__file', {
  get: function(){
    return __stack['file'];
  }
});
//方法名
Object.defineProperty(global, '__func', {
  get: function(){
    return __stack['method'];
  }
});

posted on 2019-03-28 09:33 Benjamin 阅读(1060) 评论(0)  编辑 收藏 引用 所属分类: 杂谈


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理