![](/img/trans.png)
[英]How can I access functions and variables from my JavaScript object inside of another module JS object?
[英]How can I access a data from another object in JavaScript?
我想在jobs.scan
object 中訪問availJobs
,但我不能。 它沒有在jobs.attack
中定義。 我該怎么做才能訪問其他對象中的jobs.scan
部分?
var jobs = new Array();
jobs.scan = function() {
var availJobs = new Array();
var jobContents = dom.get("app8743457343_content");
var boldthreads = jobContents.getElementsByTagName('b');
for(var i = 0; i < boldthreads.length; i++) {
if(boldthreads[i].style.color == 'silver') {
availJobs.push(boldthreads[i].textContent);
}
}
return availJobs;
}
jobs.attack = function() {
jobs.scan();
alert(jobs.availJobs[0]);
}
jobs.attack();
jobs.attack 中的jobs.attack
availJobs[0]
不起作用。 這是undefined
的。 如何將availJobs
設置為公共的並且可以在其他對象中訪問?
感謝所有幫助:! 這是我輸入的代碼:
var jobs = {
availJobs: new Array(),
scan: function() {
var jobContents = dom.get("app8743457343_content");
var boldthreads = jobContents.getElementsByTagName('b');
for(var i = 0; i < boldthreads.length; i++) {
if(boldthreads[i].style.color == 'silver') {
this.availJobs.push(boldthreads[i].textContent);
}
}
},
attack: function() {
this.scan();
alert(this.availJobs[0]);
},
};
jobs.attack();
這段代碼絕對更優雅,你不覺得嗎? 我用過這個並且有效!
{}
用於初始化一個object,Array用於初始化一個數組。
var jobs = {
availJobs : new Array()
}
jobs.scan = function() {
var jobContents = dom.get("app8743457343_content");
var boldthreads = jobContents.getElementsByTagName('b');
for(var i = 0; i < boldthreads.length; i++) {
if(boldthreads[i].style.color == 'silver') {
availJobs.push(boldthreads[i].textContent);
}
}
return availJobs;
}
在{}
聲明中,您可以將多個成員添加到您的 object,如果您用逗號,
分隔它們:
var jobs = {
availJobs : new Array(),
anotherMember : null,
anotherArray : new Array(),
aFunction = function() {...}
}
我在這里可能是錯的,但我很確定你需要在 function 本身之外聲明 availJobs,即: jobs.availJobs = new Array();
您的代碼不正確。 jobs.scan
是一個 function, jobs.attack
是另一個。 availJobs
是在jobs.scan
中定義的局部變量。 您不能從另一個訪問一個 function 的局部變量。
更重要的是,當您嘗試訪問它時, availJobs
並不存在,因為 jobs.scan 已經完成。
您需要聲明 availJobs 數組,作業應為 object。
var jobs = {}
jobs.availJobs = []
jobs.scan = function() {
var availJobs = new Array();
var jobContents = dom.get("app8743457343_content");
var boldthreads = jobContents.getElementsByTagName('b');
for(var i = 0; i < boldthreads.length; i++) {
if(boldthreads[i].style.color == 'silver') {
availJobs.push(boldthreads[i].textContent);
}
}
return availJobs;
}
jobs.attack = function() {
jobs.scan();
alert(jobs.availJobs[0]);
}
jobs.attack();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.