// 不报错 function fn(name,name){ console.log(name); } // 报错 //SyntaxError: Duplicate parametername not allowed in this context function fn(name,name,age=17){ console.log(name+","+age); }
var Person = { 'age': 18, 'sayHello': ()=>{ console.log(this.age); } }; var age = 20; Person.sayHello(); // 20 // 此时 this 指向的是全局对象
var Person1 = { 'age': 18, 'sayHello': function () { console.log(this.age); } }; var age = 20; Person1.sayHello(); // 18 // 此时的 this 指向 Person1 对象 需要动态 this 的时候
var button = document.getElementById('userClick'); button.addEventListener('click', () => { this.classList.toggle('on'); });
button 的监听函数是箭头函数,所以监听函数里面的 this 指向的是定义的时候外层的 this 对象,即 Window,导致无法操作到被点击的按钮对象。