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??