[前端] js中call方法的理解和思考

最近接手前端的工做,对当前项目中自制的js框架下,js的使用产生了很是多的困惑.尤为是js的类,对象,函数,this等等相互之间的关系和转换,之前学过也忘得差很少了,如今基本至关于从新看.前端

js中的函数有能够有好几种解释,普通函数,类,一个对象.三个关系都是能够当作是共存的.框架

function user(){};//定义一个函数
console.log(user);//1.这个时候是普通函数
var u=new user();
console.log(u);//2.这个时候是当作user类
user.toString();//3.这个时候user是做为对象的

 

 

Function是个函数对象,也能够认为是个类,全部定义的函数都是Function类的对象,我定义的user也是对象,而且能够调用Function里面的方法
user.call(xxx);当我使用user调用call方法时,他是做为对象来使用,调用的是Function类里面的call方法,这个方法的做用是调用这个函数而且把传递进去的参数覆盖函数里面的this .第一个参数是覆盖函数里面的this , 剩下的参数是做为这个函数的参数传进去函数

function user(name){
console.log('我被调用了,this被覆盖了',this,',参数传进来了',name);
};
user.call({},'陶士涵');this

 

相关文章
相关标签/搜索