我在学校的项目中有以下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'];
....
....
};
....
....
};
答案 0 :(得分:1)
this.setRequestData
上提供了 Tele.Forms.Controller.setRequestData
,而var SetRequestData
仅适用于该功能的内部。将this.setRequestData
视为Tele.Forms.Controller
对象的API,将SetRequestData
视为允许API工作的内部方法之一(我假设{{1}在...
和this.setRequestData
之间建立了一些联系。
答案 1 :(得分:1)
object = new function () {..}
是创建一个函数对象,并定义函数对象的构造函数。
在函数对象构造函数中,您可以使用表达式this.new_var = function () {..}
添加或修改对象的公共成员函数,或者如果您单独声明函数对象,则使用相同函数构造函数的任何对象:
e.g
//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() {...}
(*没有关键字new
的通知)只是为对象创建一个私有成员函数。
*在此处阅读更多有用的信息:http://javascript.crockford.com/private.html