Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使一个函数影响其他函数_Javascript_Jquery - Fatal编程技术网

Javascript 使一个函数影响其他函数

Javascript 使一个函数影响其他函数,javascript,jquery,Javascript,Jquery,我只是想知道如何用另一个函数访问一个函数。因此,如果我有下面的代码,change函数不会影响loader函数。我做错了什么 var loader = new THREE.JSONLoader(); loader.load( "test.js", function(geometry, materials){ var mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) ); scene.add(mesh)

我只是想知道如何用另一个函数访问一个函数。因此,如果我有下面的代码,change函数不会影响loader函数。我做错了什么

var loader = new THREE.JSONLoader();

loader.load( "test.js", function(geometry, materials){
var mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );
scene.add(mesh);
});

  $('input').change(function() {

    if($("#radio").is(":checked")){
    mesh.material.materials[ 0 ].color.set( 0xff0000 );
    mesh.material.materials[ 1 ].color.set( 0x111111 );
  }

  });

函数的局部变量不能从其他函数访问。由于javascript函数是共享的,因此两个函数可以共享一个变量:

var loader = new THREE.JSONLoader();
var mesh;

loader.load( "test.js", function(geometry, materials){
  mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );
  scene.add(mesh);
});

$('input').change(function() {
  if($("#radio").is(":checked")){
    mesh.material.materials[ 0 ].color.set( 0xff0000 );
    mesh.material.materials[ 1 ].color.set( 0x111111 );
  }
});

函数的局部变量不能从其他函数访问。由于javascript函数是共享的,因此两个函数可以共享一个变量:

var loader = new THREE.JSONLoader();
var mesh;

loader.load( "test.js", function(geometry, materials){
  mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );
  scene.add(mesh);
});

$('input').change(function() {
  if($("#radio").is(":checked")){
    mesh.material.materials[ 0 ].color.set( 0xff0000 );
    mesh.material.materials[ 1 ].color.set( 0x111111 );
  }
});
对将函数(闭包)视为具有公共和私有范围。是的。将函数(闭包)视为具有公共和私有范围。