在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、需求假设我们有一个对象 var person = { name: 'Frank', age: 18, phone: '13812345678', sayHi: function(){ // 待补充 }, sayBye: function(){ // 待补充 } } 这个
求就是这么简单,通过达成这个需求,我们就能理解 2、方案var person = { ... sayHi: function(name, age){ console.log('你好,我是 ${name},今年 ${age} 岁') }, sayBye: function(name, phone){ console.log('再见,记得我叫 ${name} 哦,想约我的话打电话给我,我的电话是 ${phone}') } } 调用方式是 person.sayHi(person.name, person.age) person.sayBye(person.name, person.phone) 别急,我知道这代码很傻,接下来改进。 3、第一次改进上面方法中,每次都要在调用的时候自行选择 var person = { ... sayHi: function(self){ console.log('你好,我是 ${self.name},今年 ${self.age} 岁') }, sayBye: function(self){ console.log('再见,记得我叫 ${self.name} 哦,想约我的话打电话给我,我的电话是 ${self.phone}') } } 调用方式是 person.sayHi(person) person.sayBye(person) 稍微好一点了,但是这代码依然很傻。 4、加糖开发者最想要的调用方式是
JS 之父选择了方法2,用 过程如下: // 用 this 之前: sayHi: function(self){ console.log('你好,我是 ${self.name},今年 ${self.age} 岁') } // 用 this 之后: sayHi: function(){ // this 就是 self console.log('你好,我是 ${this.name},今年 ${this.age} 岁') } 5、费解用了 this 之后,完整代码如下: var person = { name: 'Frank', age: 18, phone: '13812345678', sayHi: function(){ console.log('你好,我是 ${this.name},今年 ${this.age} 岁') }, sayBye: function(){ console.log('再见,记得我叫 ${this.name} 哦,想约我的话打电话给我,我的电话是 ${this.phone}') } } 现在轮到新手疑惑了,这个 实际 6、存在问题很多 JS 高手不屑于用
.call 的第一个参数就是显式的 所以高手一般用 这样一来 也就是说 7、对象与函数
相比于 到此这篇关于JS 里为什么会有 this的文章就介绍到这了,更多相关JS 里为什么会有 this内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论