改变this指向

实现new完整版

 function Fn(name,age){            
 this.name=name;           
 this.age=age;        
 }        
 Fn.prototype.say=function(){            
 console.log('哈哈哈哈哈')        
 }       
var obj1= new Fn("高",18);        console.log("obj1",obj1);
自己模拟        
var obj={}
创建对
Fn.call(obj,"gao",19);
改变构造函数的this 指向 --指向 obj            obj.__proto__= Fn.prototype;
将构造函数的 prototype(原型 赋值给对象的 __proto__(原型链)            返回 对象。
console.log(obj);

call/apply/bind

var obj={"name":"gao"};
function fn(a,b){            
console.log("a:",a,"b:",b) ;            console.log(this);默认this -->window       
}
fn(1,2);
fn 函数里 的this 指向 obj 对象        
第一个参数 this 指向的对象        
fn.call(obj,1,2);         
fn.apply(obj,[1,2]);                
fn.bind(obj,1,2)();
需要手动调用       
fn.bind(obj)(1,2);// 需要手动调用
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值