看哪里定义function

我怎样才能看到这个function: http : //docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#copyObject-property

copyObject(params = {}, callback) ⇒ AWS.Request 

被定义为?

我试过的:

 var AWS = require('aws-sdk'); AWS.S3.prototype.copyObject => undefined 

但是这是不明确的

我想知道它是因为我想用proxyquire这个函数:

  var aws_stub = {}; var Mover = proxyquire('../../callback/mover', {'aws-sdk': aws_stub} ).Mover; var fake_aws_copyObject = function(params, func){func(null, "succeed")}; fake_aws_copyObject_stub = sinon.spy(fake_aws_copyObject); aws_stub.AWS.S3 ... ?? = fake_aws_copyObject_stub; 

这是特定于您select使用的API的版本,所以您必须先创build一个新的服务实例var s3 = new AWS.S3();

您可以在描述API的文件的某个位置find所生成服务的定义: aws-sdk/apis/s3-2006-03-01.min.json

apis中的API文件被加载到lib/api_loader.js

您可以在lib/service.js看到它们实际上已添加到原型中,但是只有在创build服务的新实例之后才会发生这种情况:

 /** * Adds one method for each operation described in the api configuration * * @api private */ defineMethods: function defineMethods(svc) { AWS.util.each(svc.prototype.api.operations, function iterator(method) { if (svc.prototype[method]) return; svc.prototype[method] = function (params, callback) { return this.makeRequest(method, params, callback); }; }); }