javascript - 关于在对象内部修改属性的问题
本文介绍了javascript - 关于在对象内部修改属性的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
var index = {
validate: function () {
$("#uploadmodal").on('shown.bs.modal', function () {
$("#submit").on('click', function (event) {
event.stopPropagation();
if (index.validPhoto){
alert('success');
console.log(index.validPhoto);
}else {
alert('error');
console.log(index.validPhoto);
}
})
});
},
validPhoto:null,
_validateFile: function () {
$('#inputfile').checkFileTypeAndSize({
allowedExtensions: ['txt','png'],
maxSize: 5000,
success: function() {
index[validPhoto] = true;
},
extensionerror: function() {
alert('允许的格式为:txt,png !');
index[validPhoto] = false;
},
sizeerror: function() {
alert('最大尺寸500KB !');
index.validPhoto = false;
}
});
},
}
我想通过下面的函数验证文件是否符合规则,想法是通过验证规则修改validphoto,之后将validphoto传入,但是修改不成功,求指点 是不是这种写法就不对呢
解决方案
<style type="text/css">
#test,#check {
width: 100px;
height: 100px;
background: gray;
color: #fff;
margin-bottom: 10px;
}
</style>
<div id="test">test</div>
<div id="check">check</div>
<script type="text/javascript">
var index = {
validate: function () {
console.log(index.validPhoto);
var test = document.getElementById("test");
index._validateFile();
test.addEventListener("click", function() {
console.info("validPhoto's value is " + index.validPhoto);
});
},
validPhoto:null,
_validateFile: function () {
console.log(index.validPhoto);
var check = document.getElementById("check");
check.addEventListener("click", function() {
var random = Math.ceil(Math.random(1) * 10);
if(random % 2 == 0) {
index.validPhoto = true;
}
else {
index.validPhoto = false;
}
console.log(random);
});
console.log(index.validPhoto);
}
}
index.validate();
</script>
我准备在chrome 53 下是没有问题,可以运行的.
我这边说一点:
1) index[validPhoto]
不要这样写,你并没有声明 validPhoto 这个变量,有的只是index的属性.
2) 记得要初始化。
这篇关于javascript - 关于在对象内部修改属性的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文