在我的JavaScript对象中访问页面全局JavaScript变量?
在下面的代码中,我试图访问一个变量,该变量设置在JavaScript项目/对象/应用程序的HTML页面中在我的JavaScript对象中访问页面全局JavaScript变量?,javascript,jquery,Javascript,Jquery,在下面的代码中,我试图访问一个变量,该变量设置在JavaScript项目/对象/应用程序的HTML页面中 当前用户是全局变量 页面HTML JSON设置为JavaScript全局变量: (function (window, document, $, undefined) { "use strict"; //we cache a few useful values, like jQuery wrapped window and document var $window =
当前用户
是全局变量
页面HTML JSON设置为JavaScript全局变量:
(function (window, document, $, undefined) {
"use strict";
//we cache a few useful values, like jQuery wrapped window and document
var $window = $(window),
$document = $(document),
projectTaskModal = {
init: function() {
// init code and functions ran
this.initCurrentUser();
},
// Get Global current_user variable JSON and convert to
// local Object Properties in our app
initCurrentUser: function() {
console.log('ProjectTaskModal initCurrentUser() Function Ran');
// get JSON from GLOABL current_user var
var current_user = $window.current_user;
// also tried:
// var current_user = current_user;
// assign Global JSON into local app JS Object properties
var userObj = JSON && JSON.parse(current_user) || $.parseJSON(current_user);
console.log('userObj.userid', userObj.userid);
console.log('userObj.name', userObj.name);
console.log('userObj.avatar', userObj.avatar);
},
};
// Run Init on DOM Ready
$(function() {
projectTaskModal.init();
});
}(this, document, jQuery));
代码如下所示,JSFIDLE如下所示:
我似乎无法在我的应用程序中访问它,请帮助
<script type="text/javascript">
var current_user = {
userid: '123456789',
name: 'Jason Davis',
avatar: 'Jason Davis avatar img URL',
}
</script>
在代码中,您执行以下操作:
var $window = $(window)
…然后您尝试访问当前用户的尝试是:
var current_user = $window.current_user;
但是$window
是一个jQuery对象。全局变量是窗口的属性,而不是jQuery对象。您只需要窗口
就可以了
var current_user = window.current_user;
// No $ -----------^
或者,我会为局部变量使用不同的名称,并利用current\u user
是全局变量这一事实:
var user = current_user;
通过不在本地声明,您就不会对其进行阴影处理,因此您可以访问全局文件。在您的代码中,您可以:
var $window = $(window)
…然后您尝试访问当前用户的尝试是:
var current_user = $window.current_user;
但是$window
是一个jQuery对象。全局变量是窗口的属性,而不是jQuery对象。您只需要窗口
就可以了
var current_user = window.current_user;
// No $ -----------^
或者,我会为局部变量使用不同的名称,并利用current\u user
是全局变量这一事实:
var user = current_user;
通过不在本地声明,您就不会对其进行跟踪,因此您可以访问全局
不要使用jquery包装的窗口对象。使用window
而不是$window
因为当前用户存储为JSON。无需使用JSON.parse再次解析它
修复了JDFIDLE有两个问题
不要使用jquery包装的窗口对象。使用window
而不是$window
因为当前用户存储为JSON。无需使用JSON.parse再次解析它
修复了jddle谢谢!我没有想到要预先设置窗口。
即使我;我已经看过无数次了!再次感谢你,虽然我已经讲了半个小时了!谢谢我没有想到要预先设置窗口。
即使我;我已经看过无数次了!再次感谢你,虽然我已经讲了半个小时了!