在Javascript中,我需要从另一个函数中访问函数中声明的变量,如:
function abc()
{
var a = 'StackOverflow';
}
在function abc
之外我需要访问variable a
我试过了:
var s = function abc()
{
var a = 'StackOverflow';
}
alert(s.a);
我可以通过将其声明为全局变量来访问a
的值,但我想知道如何通过引用function abc
请解决此问题
谢谢。
答案 0 :(得分:2)
试试这个:
function abc()
{
this.a = 'StackOverflow';
this.b = 'jQuery Core';
this.c = 'JavaScript';
}
var s = new abc();
alert( s.a );
或者,如果您没有其他操作,请使用此表示法:
var s = {
a: 'StackOverflow',
b: 'jQuery Core',
c: 'JavaScript'
};
alert( s.a );
答案 1 :(得分:0)
这就是所谓的JavaScript对象!使用这种方式:
require(colorspace)
d_SIMS <- dist(firstpointsample5[,-1])
hc_SIMS <- hclust(d_SIMS)
labels(hc_SIMS)
dend_SIMS <- as.dendrogram(hc_SIMS)
SIMS_groups <- rev(levels(firstpointsample5[, 1]))
dend_SIMS <- color_branches(dend_SIMS, k = 3, groupLabels = SIMS_groups)
is.character(labels(dend_SIMS))
plot(dend_SIMS)
labels_colors(dend_SIMS) <- rainbow_hcl(3)[sort_levels_values(as.numeric(firstpointsample5[,1])[order.dendrogram(dend_SIMS)])]
labels(dend_SIMS) <- paste(as.character(firstpointsample5[, 1])[order.dendrogram(dend_SIMS)],"(", labels(dend_SIMS), ")", sep = "")
dend_SIMS <- hang.dendrogram(dend_SIMS, hang_height = 0.1)
dend_SIMS <- assign_values_to_leaves_nodePar(dend_SIMS, 0.5,"lab.cex")
par(mar = c(3, 3, 3, 7))
plot(dend_SIMS, main = "Clustered SIMS dataset\n (the labels give the true m/z groups)",horiz = TRUE, nodePar = list(cex = 0.007))
legend("topleft", legend = SIMS_groups, fill = rainbow_hcl(3))
并且这样说:
var s = new function abc()
{
this.a = 'StackOverflow';
}
或以其他方式:
s.a; , e.g alert(s.a);
你可以这样说:
var s = function abc()
{
var a = 'StackOverflow';
return {
a: a
};
}
答案 2 :(得分:0)
您可以使用自己的属性:
var s = function () {
function abc(r) { // declare function with one parameter as example
return Math.PI * r * r; // do something, here return area of circle as example
}
abc.a = 'StackOverflow'; // set property a with value
return abc; // return function with property
}(); // IIFE
document.getElementById('out').innerHTML = s.a + '<br>' + s(3);
<div id="out"></div>