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);