Javascript“引用错误”

时间:2014-05-22 20:06:09

标签: javascript

我有这个文件upload.js,其中包含:

var app = app | {};


(function(o){

    "use strict";

    //Private methods

    var ajax, getFormData, setProgress;

    ajax = function(data){
        var xmlhttp = new XMLHttpRequest(), uploaded;

        xmlhttp.open('post', o.options.processor);
        xmlhttp.send(data);
    };

    getFormData = function(source){

    };

    setProgress = function(value){

    };

    o.uploader = function(options){
        o.options = options;

        if(o.options.files !== undefined){
            ajax({});
        }
    }

})(app);

我在upload.php

中有这个
<script type="javascript/text" src="<? echo APP_ROOT; ?>public/js/upload.js"></script>

    <script>
            var pathname = window.location.protocol + "//" + window.location.host + "/";

            document.getElementById('submit').addEventListener('click', function(e){
                e.preventDefault();

                var f = document.getElementById('file'),
                    pb = document.getElementById('pb'),
                    pt = document.getElementById('pt');

                    app.uploader({
                        files: f,
                        progressBar: pb,
                        progressText: pt,
                        processor: pathname,

                        finished: function(data){
                            console.log(data);
                        },

                        error: function(){
                            console.log('Not working!');
                        }

                    });
            });

    </script>

每当我点击submit按钮时,我在我的控制台ReferenceError: app is not defined中出现此javascript错误它有什么问题?请帮忙。

2 个答案:

答案 0 :(得分:3)

将管道符号更改为逻辑OR运算符符号,而不是使用按位OR运算符。 (根据pid的建议/更正)

var app = app || {};

它会修复它。

答案 1 :(得分:0)

在javascript中,||的作用类似于合并。

如果第一个术语(||之前的术语)是假的,则赋值给第二个术语(||之后的术语)。

js中的|是按位or

||也是短路or运算符,因为它在许多其他语言中。