gpt4 book ai didi

javascript 对象仅提醒第一个选项

转载 作者:行者123 更新时间:2023-12-02 19:02:49 26 4
gpt4 key购买 nike

你好,我正在弄乱 Javascript 中的一个对象。这是我的对象在单独的 .js 文件中。

json-webservice.js

      //create object
function objdata(tool, product, details) {


//create object properties
this.tool = tool;
this.product = product;
this.details = details;


//create object methods
this.validate = function () {
var error = 0;
for (var prop in this) {

if (this.hasOwnProperty(prop)) {
if (prop != 'validate' || prop != 'submit') {
if (this[prop] == null || this[prop] == undefined || this[prop] == "") {
error += 1;
}
}

}
}

return error;
}

this.submit = function () {

var error = this.validate();

if (error > 0) {
alert("errors: " + error);
}
else {
alert(this.tool + " " + this.product + " " + this.details);
}
}

}


}

我将此脚本包含在我的页面 index-main.html 的头部。

然后文档准备好,然后初始化新对象并提交。

$(document).ready(function () {

var userdata = new objdata('5', 'Main Page', '9');
userdata.submit();

});

我的问题是为什么它只发出警报

---------------------------
Windows Internet Explorer
---------------------------
5
---------------------------
OK
---------------------------

而不是

---------------------------
Windows Internet Explorer
---------------------------
5 Main Page 9
---------------------------
OK
---------------------------

就像我认为应该的那样。我的对象编码正确吗?我在 IE 中没有报告任何 javascript 错误。

奇怪的是我可以复制 json-webservice.js 文件内容(上面的对象)并且它工作得很好。但它不能作为外部文件使用。

最佳答案

您需要使用this[prop]而不是this.prop;前者查找名称为 prop 中字符串的属性,而后者查找名称字面意思为“prop”的属性。

(我无法让它重现您的输出。正如所写,它只是警告“错误”,上面的更改导致它给出所需的输出。)

关于javascript 对象仅提醒第一个选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14635173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com