gpt4 book ai didi

Javascript:在函数之间传递大对象或字符串被认为是一种不好的做法

转载 作者:数据小太阳 更新时间:2023-10-29 05:07:48 25 4
gpt4 key购买 nike

在函数之间传递大字符串或对象(比方说来自 ajax 响应)是否被认为是一种不好的做法?以任何方式将响应保存在变量中并继续重用该变量是否有益?

所以在代码中它会是这样的:

var response;

$.post(url, function(resp){
response = resp;
})

function doSomething() {
// do something with the response here
}

对比

$.post(url, function(resp){
doSomething(resp);
})

function doSomething(resp) {
// do something with the resp here
}

假设 resp 是一个大对象或字符串,它可以在多个函数之间传递。

最佳答案

javascript 中的对象和字符串是通过引用传递的。 (从技术上讲,通过引用值,这意味着用 = 重新分配函数内部的变量不会影响函数外部的变量,但这不是这个问题的重点。)

这意味着将它们传递给函数并不昂贵,因为没有复制。传递给函数的只是一个指向原始对象的指针,这是高效的。


您还需要意识到您的第一个方案甚至无法正常工作:

var response;

$.post(url, function(resp){
response = resp;
})

function doSomething() {
// do something with the response here
}

因为事情的时间安排,你不知道什么时候调用doSomething()$.post() 如您所见,它是异步的,因此您不知道它何时实际完成。代码中的 resp 值必须在完成函数中使用。您必须在完成函数中使用它或从完成函数中调用某些东西并将 resp 传递给它(就像您的第二个示例)。只有这样,您才能获得该数据可用的正确时间。

关于Javascript:在函数之间传递大对象或字符串被认为是一种不好的做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23942054/

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