-1

我有以下来自学校项目的 JavaScript 代码。var SetDataRequest(此代码是为我提供的。)有人可以解释和 this.SetDataRequest 我理解函数中发生的事情之间的区别,而不是为什么以这种方式创建函数。它类似于重载吗?

Tele.Forms.Controller = new function () {
  var _requestData; 
  this.SetRequestData = function (requestData) {
        _requestData = requestData;
  };

  var SetRequestData = function () {
    var fields = $('.FormsMainTable');
    var reqData = ['REQUEST_RECORD_ID', 'DATE_SUBMITTED', 'REQUESTER_ID'];
    ....
    ....
  };

  ....
  ....
};
4

2 回答 2

1

this.setRequestData在 处可用Tele.Forms.Controller.setRequestData,而var SetRequestData仅对函数内部可用。将this.setRequestData其视为对象的 API Tele.Forms.Controller,并SetRequestData视为允许 API 工作的内部方法之一(我假设在和...之间建立一些联系)。this.setRequestDataSetRequestData

于 2013-08-07T16:28:38.327 回答
1

object = new function () {..}就是创建一个函数对象,同时也为函数对象定义构造函数。

在函数对象构造函数中,您可以使用表达式this.new_var = function () {..}添加或修改对象的公共成员函数,或者如果您单独声明函数对象,则可以使用相同的函数构造函数的任何对象:例如

//define new function object
function Car() {
    this.paint = function (...) {..};
}
//construct new object
var myCar = new Car();
//then you can use myCar.paint(...)

函数对象构造函数中的表达式var something = ...用于制作私有成员变量或函数。函数对象内部的表达式var something = function() {...}(*notice 没有关键字new)只是为对象创建了一个私有成员函数。

*在此处阅读更多有用信息:http: //javascript.crockford.com/private.html

于 2013-08-07T16:48:04.027 回答