gpt4 book ai didi

javascript - 下划线模板在调试器中不起作用

转载 作者:行者123 更新时间:2023-11-29 21:13:04 25 4
gpt4 key购买 nike

// run with console open
//and paste following when you hit the debugger:

/*
_.templateSettings = {
interpolate: /\{\{(.+?)\}\}/g
};

var template = _.template("Hello {{ name }}!");

console.log(template({name: "Mustache"}))
*/
debugger
//should return:
//underscore-min.js:5Uncaught TypeError: Cannot read property 'call' of undefined

//out of debugger though, it works:
_.templateSettings = {
interpolate: /\{\{(.+?)\}\}/g
};
var template = _.template("Hello {{ name }}!");
console.log(template({name: "Mustache"}))
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>

我无法运行 underscore's sample template在调试器中编写代码(我想在控制台中使用实际数据)。

  1. .js 文件中的代码运行良好。 ✓
  2. 页面加载正常后粘贴到控制台。 ✓
  3. 在调试器断点时粘贴 - 不起作用。 ✘

    _.templateSettings = {
    interpolate: /\{\{(.+?)\}\}/g
    }

    var template = _.template("Hello {{ name }}!");

    template({name: "Mustache"});

    错误:

    underscore.js:1461 Uncaught TypeError: Cannot read property 'call' of undefined

编辑:


template({name: "Mustache"}); 错误

Line 1461 Underscore 版本 1.8.3:

var template = function(data) {
return render.call(this, data, _);
};

最佳答案

这是 Function 实例化(下划线 1454 行)的症状,可以使用以下语句重新创建:

new Function('return true;')

在浏览器中打开任何页面(即使是这个页面),将其复制到控制台并执行,它将打印以下内容:

function anonymous() {
return true;
}

但是,如果页面当前在调试器中暂停,则该语句返回undefined。我尝试在 Firefox 中运行相同的程序,它也不起作用,甚至不返回。

我无法解释在调试器中暂停时对 V8 (Chrome) 或 SpiderMonkey (Firefox) Javascript 引擎的影响。

如果您真的需要它,这里有一个解决方法:https://jsfiddle.net/na4Lpt7L/

var source = "Hello {{ name }}!";
debugger;
var template = _.template(source);
debugger;

当第一个断点命中时:

> source = "Goodbye {{ name }}!";
< "Goodbye {{ name }}!"

现在继续执行,在第二个断点处:

> template({name: "Mustache"});
< "Goodbye Mustache!"

如果你想尝试几个选项,我会说把它放在一个循环中 (while (source.length) { ... })

关于javascript - 下划线模板在调试器中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40775289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com