js当前函数获取调用它的函数
发表于|更新于
|浏览量:
教育本质是一棵树摇动另一棵树,一朵云推动另一朵云,一个灵魂唤醒另一个灵魂。——雅斯贝尔斯
当我们在调试的时候,想获取这个函数被哪个函数调用,以方便调试,但是 caller属性被严格模式下被禁用了
我们可以通过 (new Error()).stack.split(“\n”)[2].trim().split(“ “)[1]方法来获取调用当前函数的那个函数名
解释:new Error().stack 表示程序出错位置的栈,[0]表示当前函数,[1]表示上一级函数调用的函数 [2]上上级….
例子:
1 | function bb(){cc()} |
相关推荐
2022-09-09
metainfo.js
谁若想在困厄时得到援助,就应在平日待人以宽——萨迪 分享一个获取文件信息的js库MediaInfo.js 代码仓库: https://github.com/buzz/mediainfo.js 代码如下: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> ...
2023-11-15
emberjs
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。——老子 分享一个js框架 https://emberjs.com/ Ember.js 是一个高效的、经过实战考验的 JavaScript 框架,用于构建现代 Web 应用程序。它包括构建可在任何设备上运行的丰富 UI 所需的一切。 它的语法: 123456789import Route from '@ember/routing/route';export default class IndexRoute extends Route { async model() { return { title: 'Grand Old Mansion' }; }} 对应的页面 1<h1>{{@model.title}}</h1> 使用的是.hbs后缀的模板文件,语法和vue有些异曲同工之妙,是一个很值得学习的库 其emberjs约定大于配...
2021-08-22
unshift
写作不是为了改变世界,是为了安顿自己。——周国平 前端开发中如果需要在数组头部插入元素 可以使用unshift函数 123let list = [1,2,3]list.unshift(0)list
2022-08-05
Navigator.clipboard
人类侥幸拥有了智慧,就应该善用它。——王小波 惯例,MDN:https://developer.mozilla.org/zh-CN/docs/Web/API/Navigator/clipboard 注意该API只能在https或者本地开发环境生效 剪贴板 Clipboard API 为 Navigator 接口添加了只读属性 clipboard,该属性返回一个可以读写剪切板内容的 Clipboard 对象。 在 Web 应用中,剪切板 API 可用于实现剪切、复制、粘贴的功能。 只有在用户事先授予网站或应用对剪切板的访问许可之后,才能使用异步剪切板读写方法。许可操作必须通过取得权限 Permissions API 的 "clipboard-read" 和/或 "clipboard-write" 项获得。 我们来写一段代码: 123456789<body> <div class="cliptext"></div> <script> ...
2021-12-22
truthy
每天务必做一点你所不愿意做的事情,这是一条宝贵的准则,它可以使你养成认真尽责而不以为苦的习惯。——马克.吐温 我们知道js中如果使用: 123if(2){ console.log("2")} 可以看到if中代码块执行了 这是因为JavaScript 在布尔值上下文中使用强制类型转换(coercion) 而我们if括号中表达式2,由于为truthy,也就是真值 所以被转换为了true JavaScript 中的真值示例如下(将被转换为 true,if 后的代码段将被执行): 1234567891011if (true)if ({})if ([])if (42)if ("foo")if (new Date())if (-42)if (3.14)if (-3.14)if (Infinity)if (-Infinity) 反之,我们也有Falsy 在 JavaScript 中只有 8 个 falsy 值。 这意味着当 JavaScript 期望一个布尔值,并被给与下面值中的一个时,它总是会被...
2024-05-17
处理js的JSON.parse中Number太长导致精度丢失问题
大自然的真实和单纯,常是重要艺术极点的基础。——恩格斯 代码如下: 1"token".split(".").slice(0,2).map(i=>JSON.parse(atob(i))) 这里主要是 JSON.parse 导致的,我简单复现一下 1JSON.parse('{"id":9052710354240385291}') 得到的是 1{id: 9052710354240385000} 可以看到后面的 291 变为 000 了 解决方式这里使用正则匹配 /:\s*([-+]?\d+(\.\d+)?([eE][-+]?\d+)?)/g 例如: 123456JSON.parse('{"id":9052710354240385291}'.replace(/:\s*([-+]?\d+(\.\d+)?([eE][-+]?\d+)?)/g, (match, p1) => { ...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog