js基础-6-作用域、执行流程、this指向

			var name='world'
			;(function(){
    
    
				if(typeof name === 'undefined'){
    
    
					var name='jack'   //这个匿名函数产生了局部作用域,var name 后变量提升,所以undefined
					console.log('goodbay'+name)
				}else{
    
    
					console.log('hello'+name)
				}
			})()  //goodbayjack

题目:

			function Foo(){
    
    
				getName=function(){
    
      
					alert(1)
				}      
				return this
			}
			Foo.getName=function(){
    
    alert(2)}   //把Foo作为一个函数对象!给它写方法getName
			Foo.prototype.getName=function(){
    
    alert(3)}  //定义在Foo的原型对象上
			var getName=function(){
    
    alert(4)}   //4和5都是定义在window,但4是变量,优先级更高
			function getName(){
    
    alert(5)}
			
			Foo.getName()  //调用Foo函数的方法:2
			getName()   //window上的方法:4
			Foo().getName()   //先调用Foo,返回的this是window,调用foo时会在全局生成getName覆盖之前的4,所以执行后是window的方法:1
			getName()    //1,window上的getname已经被覆盖了
			new Foo().getName()   //3  创建实例对象,

猜你喜欢

转载自blog.csdn.net/weixin_42349568/article/details/108986836