因为不赞成使用“ sendgrid”软件包,所以我尝试理解该软件包的代码以实现新的“ @sendgrid”软件包。我对此功能感到困惑:
function ClickTracking(enable, enable_text) {
this.enable = enable;
this.enable_text = enable_text;
this.setEnable = function(enable) {
this.enable = enable;
};
this.getEnable = function() {
return this.enable;
};
this.setEnableText = function(enable_text) {
this.enable_text = enable_text;
};
this.getEnableText = function() {
return this.enable_text;
};
this.toJSON = function() {
var json = {
enable: this.getEnable(),
enable_text: this.getEnableText(),
};
return json;
};
return this;
}
此代码在函数内部
this.enable = enable;
已经设置了enable:enable,为什么我们需要创建此功能:
this.setEnable = function(enable) {
this.enable = enable;
};
此代码的另一个问题是:
this.toJSON = function() {
var json = {
enable: this.getEnable(),
enable_text: this.getEnableText(),
};
return json;
};
toJson方法已定义,但这不会将其转换为json。谁能解释该代码的作用?
有时您会看到生活中的怪异事物,这意味着它的意义。
this.enable已经公开。如果作者可能想放置一些访问成员控件,则应这样设置:const enable = enable;然后这些方法就有意义了。
关于toJSON方法,它返回作为对象{enable:,enable_text:}的JSON结构,以将其序列化传递给您,您需要做的所有操作JSON.stringify(this.toJSON())或您希望通过它获取字符串表示形式更改其返回值。