gpt4 book ai didi

javascript - 访问我的 JavaScript 对象内的页面全局 JavaScript 变量?

转载 作者:行者123 更新时间:2023-11-28 15:22:16 24 4
gpt4 key购买 nike

在下面的代码中,我尝试访问设置在 JavaScript 项目/对象/应用程序内的页面 HTML 中的变量。

current_user 是全局变量。

页面 HTML JSON 设置为 JavaScript 全局变量:

代码如下所示,JSFiddle 在这里:http://jsfiddle.net/jasondavis/Ly8hongf/

我似乎无法在我的应用程序内部访问它,请帮忙?

<script type="text/javascript">
var current_user = {
userid: '123456789',
name: 'Jason Davis',
avatar: 'Jason Davis avatar img URL',
}
</script>

精简 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));

最佳答案

在您的代码中,您执行以下操作:

var $window = $(window)

...然后您尝试访问 current_user 的方式是:

var current_user = $window.current_user;

但是$window是一个jQuery对象。全局变量是 window 的属性,而不是 jQuery 对象。你只想要window在那里。

var current_user = window.current_user;
// No $ -----------^

或者,我只需为局部变量使用不同的名称,并利用 current_user 是全局变量的事实:

var user = current_user;

通过不在本地声明它,您就不会隐藏它,因此您可以访问全局。

关于javascript - 访问我的 JavaScript 对象内的页面全局 JavaScript 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30797107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com