标签:style 全局 rip 生成 cti 调用 script code getname
1、关于对象中的this指向问题
<script> window.test1 = ‘试验文字1‘; window.test2 = ‘试验文字2‘; var obj = { test3: ‘试验文字3‘, getName: function() { // 不能正常输出 // 该方法相当于是obj调用,所以this是指向obj console.log(this.test1); // 能正常输出 console.log(this.test3); return function() { // 能正常输出 // 在调用getName方法是生成了一个函数,位于全局作用域下,所以该方法的调用者是window,this也就指向了window console.log(this.test2) } } } obj.getName()(); </script>
2、对象中的普通函数和箭头函数中的this指向
<script> window.winTest = ‘winTest‘; var obj1 = { objTest: ‘objTest‘, // 普通函数this指向其调用者,fun1的调用者是obj1 fun1: function() { console.log(this.objTest) } } var obj2 = { // 箭头函数本身不指定this,而是根据上下文的this确定,即obj2的调用者。obj2的调用者是window,所以this指向window fun2: () => { console.log(this.winTest) } } obj1.fun1(); obj2.fun2(); var obj3 = { name: this.winTest } console.log(obj3.name) </script>
标签:style 全局 rip 生成 cti 调用 script code getname
原文地址:https://www.cnblogs.com/lhseo/p/12687834.html