this 指向 与 改变 this 指向

this
普通函数: 指向调用时的所在对象(谁调用指向谁)(.前面是谁指向谁)
箭头函数: 指向定义时所在的对象(ES6)
全局函数: this 指向 window 调用时省略了window

var obj = {
	say : function (){
		console.log(this);
	}
obj.say();//指向 obj
var x = obj.say;
x();//指向  window
//对象中 函数this指向当前对象
//调用时  对象.方法名


but.onclick = function(){}
//在事件中 指向  发生事件的dom对象  需点击一下出现效果

//闭包
function Fn(){ 
	return function(){
		console.log(this);
	}
}
//调用
var a = fn();
a();
//this 指向  window

改变 this 指向

var obj = {"name","静静"};

function fn(){
	console.log(this);
}
fn();  //指向  window

//()中第一个参数this指向对象
//改变为指向 obj
fn.call(obj);
fn.apply(obj);
fn.bind(obj)();//需要手动调用

//传参方法
fn.call(obj,1,2);
fn.apply(obj,[1,2]);
fn.bind(obj,1,2)();//需要手动调用
fn.bind(obj)(1,2);//需要手动调用



function Fn(name,age){
	obj.name = name;
	obj.age = age;
}
//new  创建对象

//改变构造函数中的this指向    改为obj   并返回对象
var obj = [];
Fn.call(obj,"莹莹",25);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值