var x = "haha"; var test = function(){ alert(this.x); } 上述,则会弹出 haha的值. 因为在JavaScript的变量作用域里有一条规则“全局变量都是window对象的属性”. 所以当执行test();方法时,相当于执行window.test(); 所以test方法中的this相当于指向了window对象,而window对象又有x变量. 即:this所在的函数是当作哪个方法的对象所调用的,即该对象就是this所引用的对象. 参…
今天遇到个bug,最后终于知道原因了,js方法入参和全局变量重名,用入参赋值全局变量失败,就是说方法入参不能和全局变量重名. 现在下面的例子也说明,局部变量和全局变量不可以同名不光是入参,只要同名赋值就会失败. <html> <body> <script type="text/javascript"> var test = 5; //全局变量 function a() { var test = 3;//局部变量 test =test; }; func…
发现一个问题. python中list变量作为全局变量时,在函数中可以直接修改. 而普通变量则需要先在函数中global声明,否则会报错. 例如: a = 1 def fun(): global a a = 2 而list: b = [1,2] def fun(): b[0] = 2 在函数中直接修改list则是可以的. 原因是: 普通变量如果在函数中赋值 a = 2 会有歧义.因为它既可以是表示引用全局变量a,也可以是创建一个新的局部变量,所以在python中,默认它的行为是创建局部变量,除非…
#局部变量,只能调用函数体内的变量 def fun(): a = 234 print(a) #全局变量,在函数体外声明,在函数体内都可调用 b = 'gyc' def fun(): a = 234 print(a,b) # 在局部内修改全局变量 b = 789 def fun(): a = 234 global b #global 表示全局b赋值为789 b = 789 print(a,b)…
Python 2.7.10 (default, Oct 14 2015, 16:09:02) [GCC 5.2.1 20151010] on linux2 Type "copyright", "credits" or "license()" for more information. >>> def fun1(): return [1,2,3] >>> print(fun1) <function fun1…