gpt4 book ai didi

node.js - express / Jade /哈巴狗 : Calling a javascript object's functions

转载 作者:太空宇宙 更新时间:2023-11-04 00:17:17 26 4
gpt4 key购买 nike

虽然我可以传递对象的数据,但我不知道如何传递/调用对象的函数。

route.js:

router.get('/', function(req, res, next) {
let test = {}; // passing an object called test
test.hello = function() { //the test object has a method I want to
console.log('hello'); //call on the browser
}

res.render('home.jade', { test:test });

在 .jade 页面上:

//- let test = !{test}; //renders as [object Object]
let test = !{JSON.stringify(test, null, 4)}; //renders empty obj
test.hello();
console.log('test', test);

控制台消息:

Uncaught TypeError: test.hello is not a function

渲染的源文件:

//- let test = [object Object];
let test = {};
test.hello();
console.log('test', test);

对 my.jade 文件有效的示例(我不想要的):

    let test = {};
test.hello = #{test.hello};
test.hello();

这将安慰出“你好”。但是,我想有一种方法可以在没有这种解决方法的情况下传递和调用对象的函数。

感谢您的帮助。

最佳答案

JSON.stringify 将删除函数,因为 JSON 格式不支持函数/方法。来自 MDN :

Functions are not a valid JSON data type so they will not work. However, they can be displayed if first converted to a string (e.g. in the replacer), via the function's toString method. Also, some objects like Date will be a string after JSON.parse().

从技术上讲,您可以使用 eval 将结果字符串计算为函数,但不建议这样做。

关于node.js - express / Jade /哈巴狗 : Calling a javascript object's functions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46291727/

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