zoukankan      html  css  js  c++  java
  • js 在函数中遇到的this指向问题

    //自执行函数的调用三种
    /*
    !function(){
    	alert(123)
    }();
    (function(){
    	alert(345)
    }())
    (function(){
    	Array.prototype.push.call(arguments,3);
    	console.log(arguments)//输出 [1,2,3]
    })(1,2)
    */
    var obj = {
    	a:1,
    	b:function(){
    		console.log(this);
    	}
    }
    obj.fn = function(){
    	console.log(this);//===obj
    }
    obj.fn();
    obj.b();//this==obj
    //var c = obj.b();//this==obj
    //c();//this==window;
    
    Function.prototype.bind = function(context){
    	var self = this;
    	console.log('测试bind')
    	console.log(this); // function(){var c = 1}
    	return function(){
    		return  self.apply(context,arguments)
    
    	}
    }
    var o = {
    	name:'my name id huhu'
    }
    var func = function(){
    	alert(this.name)
    }.bind(o);
    console.log(func)  //function(){return self.apply(context,argument)}
    func();  
    

      

  • 相关阅读:
    OS快速开发必备
    YYmodel 郭耀源 底层分析
    UITableView使用总结和性能优化
    文件操作
    DOM解析
    SAX解析
    Gallery
    菜单(menu)
    计时器(Chronometer)、标签(TabHost)
    ListActivity
  • 原文地址:https://www.cnblogs.com/mengdiezhuangzhou/p/9829115.html
Copyright © 2011-2022 走看看