javascript - 关于在对象内部修改属性的问题

查看:60
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆