gpt4 book ai didi

javascript - 如何调用返回 block 中写入键值对的函数?

转载 作者:行者123 更新时间:2023-11-28 12:20:12 24 4
gpt4 key购买 nike

受 Angular 服务方法声明的启发,我使用纯 JavaScript 文件并按以下方式编写函数(我不知道这种方法叫什么)

测试.js

var MyService = function() {
var base;

var service = {
init: function (formdata) {
base.name = formdata.name;
console.log('calling init');
},
other: function () {
console.log('caling other');
}
}
return service;
}

现在在 HTML 中我想将其称为 MyService.init(formdata);

<html>
<head>
<title>Scratchpad</title>
<script src="test.js"></script>
<script>
var formdata = {};
function generateData() {
var form = document.getElementById('Myform');
formdata.name = 'Alpha';
console.log(formdata);
MyService.init(formdata);
}
</script>
</head>
<body>
<form id="Myform" role="form" method="post">
<button type="button" onclick="generateData()">Generate Data</button>
</form>
</body>
</html>

但它会产生以下错误

未捕获的ReferenceError:MyService未定义

我们不能用普通的 JavaScript 实现这种方式吗?

最佳答案

MyService 是一个函数,而不是具有属性的对象,您需要调用为

MyService().init(formdata);

基数也未定义,因此必须将其初始化为

var base = {};

完整示例

var MyService = function() {
var base = {};
var service = {
init: function (formdata) {
base.name = formdata.name;
console.log('calling init');
},
other: function () {
console.log('caling other');
}
}
return service;
}


MyService().init({name:"2"}) ; //outputs 'calling init'

关于javascript - 如何调用返回 block 中写入键值对的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40035101/

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