new1 および new new2 関数から new3 関数に値を渡したいだけです
function new1(){
var a = 5;
}
function new2(){
var c=6;
}
function new3(){
if(a<c){
dosomething();
}
}
new1 および new new2 関数から new3 関数に値を渡したいだけです
function new1(){
var a = 5;
}
function new2(){
var c=6;
}
function new3(){
if(a<c){
dosomething();
}
}
(function(){
var a, c; // Not global, but available to all three functions
function new1(){
a = 5;
}
function new2(){
c = 6;
}
function new3(){
if(a < c)
doSomething();
}
new1();
new2();
new3();
})();
function doSomething(){
console.log("Doing something");
}
console.log(typeof a); // "undefined"
JS:-
function new1() {
this.a = 5;
}
function new2() {
this.c = 6;
}
function new3() {
var objnew1= new new1();
var objnew2= new new2();
if (objnew1.a < objnew2.c) {
alert("a less than b");
}
}
new3();
試す:
function new1(){
var a = 5;
return a;
}
function new2(){
var c=6;
return c;
}
function new3(){
if(new1()<new2()){
// dosomething();
alert("done");
}
}
これは、オブジェクト指向プログラミングまたは名前空間のいずれかが必要なようです...
おっと:
このメソッドでは、状態を保持するオブジェクト (そのオブジェクトに固有の変数)とそれらの変数を操作するメソッドを作成するコンストラクターを作成します。
それぞれが独自の状態を持つ、そのオブジェクトの多くのバージョンを持つことができます。
function dosomething() {
alert("Did something!");
}
var MyNewObject = function() {
// Accessible to functions because the functions are closures.
var a=0;
var c=0;
this.new1 = function(){
a=5;
}
this.new2 = function(){
c=6;
}
this.new3 = function(){
if (a < c){
dosomething();
}
}
}
var objThatDoesNews = new MyNewObject();
objThatDoesNews.new3(); // Didn't do anything
objThatDoesNews.new1(); // Set a to 5
objThatDoesNews.new2(); // Set c to 6
objThatDoesNews.new3(); // Did something!
名前空間:
この方法では、各変数が 1 つだけ存在するという点で、グローバル変数に似ています。ただし、名前空間 (単純な JS オブジェクト) により、名前の競合を回避できます。
function dosomething() {
alert("Did something!");
}
var MyNamespace = {
a: 0,
c: 0,
new1: function(){
this.a=5;
},
new2: function(){
this.c=6;
},
new3: function(){
if(this.a < this.c){
dosomething();
}
}
}
MyNamespace.new3(); // Didn't do anything
MyNamespace.new1(); // Set a to 5
MyNamespace.new2(); // Set c to 6
MyNamespace.new3(); // Did something!
このように、Javaスクリプトである関数から別の関数に値を渡すことができます
function func1(){
var c=6;
var a =5;
func2(c,a);
}
function func2(obj1, obj2){
//some operation here using obj1 and obj2
}
しかし、異なるメソッドから値を渡したい場合、2 つの異なる呼び出しがあり、呼び出された関数は次の呼び出しまで値を保持しません。
あなたの場合、 a または c の値の少なくとも1つは、呼び出された関数に対してグローバルに宣言する必要があり、1つを渡すことができます。
別
もう 1 つの代替手段として、戻り値を持つ関数を使用し、別の関数内で関数を直接呼び出すことができます。
function func1(){
var c = 5;
return c;
}
function func2(){
//use func1 here
func1();
}
次のような値を返すことができます。
function new1(){
var a = 5;
return a;
}
function new2(){
var c=6;
return c;
}
function new3(){
//get values
var x = new1(), y = new2();
if(x < y){
dosomething();
}
}
function new1(){
var a = 5;
new2(a);
}
function new2(a){
var c=6;
new3(a, c)
}
function new3(a, c){
if(a<c){
dosomething();
}
}