gpt4 book ai didi

javascript - 代码重构,如何优雅地覆盖对象值

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

所以我调用工厂,在一切顺利之后我想重置输入字段的值,正如您在下面的代码中看到的那样,我手动执行此操作。

vm.submitRequest = () = > {
requestedBooksFactory.requestBook(vm.title, vm.author, vm.link, vm.destination, vm.currentUser, vm.comments)
.then(function (newbook) {
let booksInTotal = vm.requestedBooks.allBooks.length + 1;

vm.requestedBooks.allBooks.push(newbook);
vm.requestedBooks.header = requestedBooksFactory.requestedText(booksInTotal);
}).then(() = > {
vm.title = '';
vm.author = '';
vm.link = '';
vm.comments = '';
vm.destination = false;
vm.submitted = false;
})
}

我不喜欢这个样子,但想不出解决它的方法

最佳答案

我自己重构这段代码的方式:

vm.submitRequest = submitRequest;

/**************/

function submitRequest() {
return requestBook()
.then(bookReceived)
.then(clearController);

}

function requestBook() {
return requestedBooksFactory.requestBook(vm.title, vm.author, vm.link, vm.destination, vm.currentUser, vm.comments);
}

function bookReceived(book) {
vm.requestedBooks.allBooks.push(book);
vm.requestedBooks.header = requestedBooksFactory.requestedText(vm.requestedBooks.allBooks.length);
}

function clearController() {
vm.title = '';
vm.author = '';
vm.link = '';
vm.comments = '';
vm.destination = false;
vm.submitted = false;
}

来源不应该太压缩。它应该是可读和清晰的。
不要对长方法使用匿名函数。
它们是为短迭代器设计的。
不要害怕函数名,它们是为你准备的,而不是为解析器准备的。
对于解析器,您将使用混淆器。


但是我试着发布你在找什么:)

   function clearController() {
['title', 'author', 'link', 'comments'].forEach(f => {vm[f] = '';});
['destination', 'submitted'].forEach(f => {vm[f] = false;});
}

关于javascript - 代码重构,如何优雅地覆盖对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33921914/

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