箭头函数的this指向:
指向上层对象,如果没有,则会指向window
var obj = {
name:"张三"
do_sth:()=>console.log(`${this.name}`)
}
var name = '李四'
obj.do_sth() ===>李四
两层嵌套:
let obj = {
uname:"张三",
myinfo:function(){
console.log(`我是${this.uname}`);
},
myFri:function(){
return{
uname:"李四",
mylsinfo:function(){
console.log(`我是${this.uname}`);
},
}
}
}
obj.myinfo(); ===>'我是张三'
obj.myFri().mylsinfo(); ===>'我是李四'
改变this指向:
function.call(thisArg,arg1,arg2...)
thisArg指的是在function运行中的指针指向,argn是参数列表
MDN 关于call()的链接https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/call
function.apply()//与call相同,第二个参数使用数组存放参数
function.bind()//与call()相同,返回新的方法
//创建构造函数
function Obj3(name,age){
var oob = {}; // 手动创建一个对象
// 手动添加属性
oob.name =name;
oob.age = age;
oob.say = function (){
console.log("yayayaya");
}
// 手动返回对象
return oob;
}
未完