关于js中全局和非全局以及立即运行的问题
来源:互联网 发布:centos没有桌面 编辑:程序博客网 时间:2024/05/29 19:29
最近在弄backbone.js的时候遇到了一点问题,让我对JavaScript的变量作用域问题又理解深刻了点,在此记录下。
自定义了一个app.js,使用的backbone的语法,定义了一个View,整个app.js结构大致如下:
(function(){
var ListView = Backbone.View.extend({
});
}());
此处使用了立即执行的函数表达式写法。在jsp中我引用ListView的时候出现了异常,使用方式如下:
<script>
var list = new ListView();
</script>
异常如下:
js中已经定义了ListView的,为什么会出现未定义。无奈去掉立即执行函数表达式,app.js结构变为如下:
var ListView = Backbone.View.extend({
});
ok,执行成功,正确调用。这是什么原因呢?猜测作用域的问题,再改变app.js,变为如下:
(function(){
ListView = Backbone.View.extend({
});
}());
ok,执行成功,正确调用。去掉ListView前面的var声明居然成功了。。。。。看来var声明的作用域只在当前函数体内。
ListView = Backbone.View.extend({
0 0
- 关于js中全局和非全局以及立即运行的问题
- 关于js的全局对象
- 关于全局对话框的问题
- 关于JSP中获取全局上下文不能识别的问题
- 非全局的函数
- 关于c 和 c++ 中定义全局常量的异同
- 全局以及局部变量的重名问题
- 关于global全局和局部问题
- 关于powerbuilder的全局函数重载问题
- [转]关于Java全局快捷键的问题
- js全局函数以及重载
- Node.js的全局对象和全局变量
- Node.js的全局对象和全局变量
- 关于全局样式以及兼容性
- 全局JS的位置
- JS的全局函数
- js的全局函数
- js的全局函数
- 【华为oj】统计每个月的兔子总数
- Mozilla 推出安卓应用创建工具 Webmaker
- 互联网+
- Java定时任务--定时调用方法(servlet)
- SAP 长文本
- 关于js中全局和非全局以及立即运行的问题
- java用递归实现输入字符串反向输出
- 合成地震记录的matlab程序
- windows下安装apache、php、sql server
- 警方公布12类高校招生骗局 提醒大家要防范
- Quartz使用-入门使用(java定时任务实现)
- AT NEW 用法和注意
- 【编程习题★★★☆☆】等式变换求解
- Java 中利用 axis2 进行webservice 客户端编写