Javascript 定义带var或不带var的对象

Javascript 定义带var或不带var的对象,javascript,object,Javascript,Object,问题是Var ninja=null 这是另一个物体吗 还是和我在第一行写的一样 我猜这是另一个新对象,因为我用var定义它 但这是错误的,因为输出是错误的,并且捕获身体跑了。这到底是什么? 我也有和上面一样的例子,但这是不同的工作方式为什么 var ninja = { yell: function(n){ return n > 0 ? ninja.yell(n-1) + "a" : "hiy"; } }; console.log( ninja.yell(4) ==

问题是
Var ninja=null

这是另一个物体吗

还是和我在第一行写的一样

我猜这是另一个新对象,因为我用var定义它

但这是错误的,因为输出是错误的,并且捕获身体跑了。这到底是什么? 我也有和上面一样的例子,但这是不同的工作方式为什么

var ninja = { 
  yell: function(n){ 
    return n > 0 ? ninja.yell(n-1) + "a" : "hiy"; 
  } 
}; 
console.log( ninja.yell(4) == "hiyaaaa", "A single object isn't too bad, either." ); 

var samurai = { yell: ninja.yell }; 
var ninja = null; 

try { 
  samurai.yell(4); 
} catch(e){ 
  console.log( false, "Uh, this isn't good! Where'd ninja.yell go?" ); 
}

变量在特定范围内只能声明一次。第二个
var ninja=null
忽略
var
声明,并简单地重新分配相同的变量,就像编写
ninja=null一样


将对变量的重新声明发出警告。

作用域上的dens。如果两个语句都在同一个范围内,它们将指向同一个对象。这不是重新定义了var吗?现在请看,这是finevar obj={name:“faizan”,age:31}var obj2=obj//obj2指向obj console.log的同一内存位置(“在生成空obj::”之前,obj2.name);log(obj==obj2,“::检查obj==obj2而var obj2=obj”);obj=null//obj变成了null console.log(“在创建null obj::”之后,obj2.name)//现在这个值需要为null,但正在起作用,为什么?我不知道你在问什么,因为注释没有任何格式,我也看不懂代码。b/w ninja={}和ninja=null有什么区别第一个值将ninja设置为没有属性的对象,第二个值将ninja设置为
null
var obj={name: "faizan", age:31}
    var obj2 = obj;//obj2 pointing to the same memoray location of obj
    console.log("before making null obj::",obj2.name);
    console.log(obj==obj2,"::checking obj==obj2 while var obj2=obj");
    obj=null;  //obj became null
    console.log("after making null obj::",obj2.name);//now this will need to be null but is working why??