javascript中引用函数的问题 //第一次初始化 var bob=函数() { console.log('bob'); }; //通过引用将jan设置为bob var jan=bob; //将bob设置为另一个函数 bob=函数() { console.log('newbob'); }; jan()//console.logs'bob' 鲍勃()//console.logs“newbob”
问题:javascript中引用函数的问题 //第一次初始化 var bob=函数() { console.log('bob'); }; //通过引用将jan设置为bob var jan=bob; //将bob设置为另一个函数 bob=函数() { console.log('newbob'); }; jan()//console.logs'bob' 鲍勃()//console.logs“newbob”,javascript,Javascript,问题: 为什么jan();输出bob,而不是newbob?因为jan()是bob()在var jan=bob之后的引用,jan和bob都是对同一函数的引用 bob=function(){}将对新函数的引用分配给bob jan仍然包含对原始函数的引用 i、 e.您正在更改变量的值,而不是更改变量引用的函数 比较: <script> //bob first initialization var bob = function() { console.log('bob'); };
为什么
jan()
;输出bob
,而不是newbob
?因为jan()
是bob()
在var jan=bob之后的引用
,jan
和bob
都是对同一函数的引用
bob=function(){}
将对新函数的引用分配给bob
jan
仍然包含对原始函数的引用
i、 e.您正在更改变量的值,而不是更改变量引用的函数
比较:
<script>
//bob first initialization
var bob = function()
{
console.log('bob');
};
//set jan to bob via reference
var jan = bob;
//set bob to another function
bob = function()
{
console.log('newbob');
};
jan(); //console.logs 'bob'
bob(); //console.logs 'newbob'
</script>
现在
a
和b
包含对同一对象的引用。对象包含对函数的引用。当您为该对象属性分配新函数时,a.f
和b.f
都会更改,因为a
和b
仍然是对同一对象的引用。之后var jan=bob
,jan
和bob
都是对同一函数的引用
bob=function(){}
将对新函数的引用分配给bob
jan
仍然包含对原始函数的引用
i、 e.您正在更改变量的值,而不是更改变量引用的函数
比较:
<script>
//bob first initialization
var bob = function()
{
console.log('bob');
};
//set jan to bob via reference
var jan = bob;
//set bob to another function
bob = function()
{
console.log('newbob');
};
jan(); //console.logs 'bob'
bob(); //console.logs 'newbob'
</script>
现在
a
和b
包含对同一对象的引用。对象包含对函数的引用。当您将新函数指定给该对象属性时,a.f
和b.f
都会更改,因为a
和b
仍然是对同一对象的引用。jan和bob只是在某个时间点指向同一函数的两个变量,但将新值分配给其中一个不会对分配给另一个的值产生任何影响。就像:
var a = { f: function () { console.log(1); } };
var b = a;
a.f = function () { console.log(2); };
jan和bob只是两个变量,它们恰好在某个时间点指向同一个函数,但将新值分配给其中一个变量不会对分配给另一个变量的值产生任何影响。就像:
var a = { f: function () { console.log(1); } };
var b = a;
a.f = function () { console.log(2); };
看看这个看看这个