[英]Getter in object isn't returning a value Javascript
我在从对象返回值时遇到问题。 我的对象看起来像这样。
function XYZ(date, startT) { var _date=date; var _startT=startT; this.get_date = function() { return _date; }; this.set_date = function(value) { _date=value; }; this.get_startT = function() { return _startT; }; this.set_startT = function(value) { _startT=value; }; this.toString() return (_date + " " _startT); }
然后我创建一个这样的数组
jsData[0] =new XYZ("2012-11-11","8:00"); jsData[1] = new XYZ("2012-03-03","8:00");
当我想使用 get_date 方法时,它没有返回值但 get_startT 方法工作正常。 当我用 .toString 方法显示对象时,它也会显示完整的对象
请帮忙。
如果您修复所有语法错误,它会起作用:
function XYZ(date, startT) {
var _date=date;
var _startT=startT;
this.get_date = function() {
return _date;
};
this.set_date = function(value) {
_date=value;
};
this.get_startT = function() {
return _startT;
};
this.set_startT = function(value) {
_startT=value;
};
}
var jsData = [];
jsData[0] = new XYZ("2012-11-11","8:00");
jsData[1] = new XYZ("2012-03-03","8:00");
display("jsData[0].get_date() = " + jsData[0].get_date());
输出:
jsData[0].get_date() = 2012-11-11
除了明显的错别字,这是我所做的:
将{
和}
放在函数体周围。
删除了无功能的this.toString()
(无操作,因为您没有将结果存储在任何地方)。
删除了最后的返回,因为从构造函数返回一个字符串原语是另一个空操作。
声明jsData
。
初始化jsData
。
您似乎缺少左括号{
after
function XYZ(date, startT)
一个在你的代码末尾。 ( }
)
尝试向函数原型添加方法,如下所示:
function XYZ(date, startT) {
this._date = date;
this._startT = startT;
}
XYZ.prototype.get_date = function() {
return this._date;
}
XYZ.prototype.set_date = function(value) {
this._date = value;
}
XYZ.prototype.get_startT = function() {
return this._startT;
}
XYZ.prototype.set_startT = function(value) {
this._startT = value;
}
XYZ.prototype.toString = function() {
return this._date + " " + this._startT;
}
var myXYZ = new XYZ("2012-11-11","8:00");
myXYZ.toString(); // "2012-11-11 8:00"
我在控制台中进行了测试,它正确输出了最终字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.