他の関数から var w 値にアクセスしたい。出来ますか。
<script type="text/javascript">
var first = {
myFirst: function(){
var w= 90;
var q=12;
}}
var second= {
mySecond: function(){
first.myFirst.w
}}
</script>
他の関数から var w 値にアクセスしたい。出来ますか。
<script type="text/javascript">
var first = {
myFirst: function(){
var w= 90;
var q=12;
}}
var second= {
mySecond: function(){
first.myFirst.w
}}
</script>
w
のローカルスコープで定義されているため、その方法ではアクセスできませんmyFirst
。次のようなことができます:
var first = {
myFirst: function(){
first.myFirst.w = 90;
var q=12;
}
};
var second= {
mySecond: function(){
alert(first.myFirst.w);
}
};
first.myFirst();
second.mySecond(); //alerts 90
そのようw
にして、 function のプロパティとして追加されます。 のmyFirst
プロパティとして追加する場合はfirst
、次を使用します。
var first = {
myFirst: function(){
this.w = 90;
var q=12;
}
};
var second= {
mySecond: function(){
alert(first.w);
}
};
first.myFirst();
second.mySecond(); //alerts 90
w のスコープは関数内にあるため、それは不可能です。関数が呼び出されると、 w は存在しなくなります。
また、技術的には、first.myFirst().w; を呼び出す必要があります。
それを機能させるには、代わりにこれを行うことができます:
var first = {
myFirst: function(){
var w= 90;
var q=12;
return { w : w };
}
}
first.myFirst().w // now works.