gpt4 book ai didi

javascript - 参数如何传递给这个匿名函数?

转载 作者:行者123 更新时间:2023-12-03 06:10:46 29 4
gpt4 key购买 nike

我不太明白下面代码中下面一行的约定

request.transformRequest = internal.transformRequest;

这实际上是调用 internal.transformRequest 函数,还是只是将该函数设置为等于 request 对象中的同名方法?我认为它正在调用该函数,因为 transformRequest 从未在代码中的其他任何地方调用,但是 datagetHeaders 的参数是如何传入的案例?

internal.transformResourceUrl = function (url) {
if (url.substr(-1) === '/')
url = url.substr(0, url.length - 1);
return url + '.json';
};

internal.transformRequest = function (data, getHeaders) {
// If this is not an object, defer to native stringification.
if (!angular.isObject(data)) {
return (data === null) ? '' : data.toString();
}

var buffer = [];
// Serialize each key in the object.
for (var name in data) {
if (!data.hasOwnProperty(name)) continue;
var value = data[name];
buffer.push(
encodeURIComponent(name) +
'=' +
encodeURIComponent((value === null) ? '' : value )
);
}

// Serialize the buffer and clean it up for transportation.
var source = buffer
.join('&')
.replace(/%20/g, '+')
;

return source;
};

internal.generateRequest = function (method, resource, data, account) {
method = method.toUpperCase();

if (!angular.isString(account) || account.length < 1)
account = '_default';

resource = 'Accounts/' +
accounts[account] + '/' +
internal.transformResourceUrl(resource);

var request = {
method: method,
url: apiEndpoint + resource,
headers: {
'Authorization': 'Basic ' + credentialsB64
}
};

if (method === 'POST' || method === 'PUT') {
if (data) request.data = data;
request.transformRequest = internal.transformRequest;
request.headers['content-type'] = 'application/x-www-form-urlencoded; charset=utf-8';
} else if (data) {
request.params = data;
}
return $http(request);
};

最佳答案

“这实际上是调用internal.transformRequest函数,还是只是将函数设置为等于方法”
“我认为它正在调用该函数,因为在代码中的其他任何地方都不会调用transformRequest”

如何调用 internal.transformRequest 方法

第 7 行:transformRequest :method(function) 已添加到 internal :object

internal.transformRequest = function (data, getHeaders) {


第 54 行:requesttransformRequest 属性:对象分配给上述方法

request.transformRequest = internal.transformRequest;


第 59 行: $http() :通过 request 调用函数:现在拥有的对象transformRequest :指向 internal.transformRequest 的方法

return $http(request);

关于javascript - 参数如何传递给这个匿名函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39329599/

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