我在一个文件中有以下代码:
function refreshGridSuccess(responseText, entity) {
oTable = $('#dataTable').dataTable({
"sScrollX": "100%",
在我的另一个文件中:
$('#detailData')
.on('click', '.sort-up', function (event) {
event.preventDefault();
var column = $(this).closest('th'),
columnIndex = column.parent().children().index(column.get(0));
oTable.fnSort([[columnIndex, 'asc']]);
return false;
})
除了这里,我没有定义oTable
。这些脚本似乎有效,这是否意味着 oTable
以某种方式变成了全局变量?
现在我正尝试开始使用 Typescript,它不会在未声明的情况下接受 Otable
。有没有一种方法可以将 oTable
声明为对象,或者我是否必须将其声明为与 $('#dataTable').dataTable( 返回的类型相同的对象{})
?
最佳答案
如果您在全局范围内,则没有区别。 如果您在一个函数中,那么“var”将创建一个局部变量,“no var”将查找作用域链,直到找到该变量或到达全局作用域(此时它将创建它)。
在这里找到:What is the purpose of the var keyword and when to use it (or omit it)?
关于javascript - 没有用 var 声明的 JavaScript 变量会变成全局变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13329329/