js中的上下文常常代表this变量的值,以及this变量的指向,当一个函数当作一个方法被调用时,this指向的是调用这个方法的对象
通过以下几种实例来了解一下
第一种情况,作为对象的方法
var pet={ Words:"...", speak:function(){ console.log(this.words); console.log(this==pet); }}pet.speak();控制台输出:
...true说明this指向的就是对象pet
第二种情况,直接调用函数
function pet(words){ this.words=words; console.log(this.words); console.log(this==globle);}pet('...');控制台输出:
...true说明调用pet方法的并不是pet本身,而是node.js中的顶层对象globle
第三种情况,构造函数
function Pet(words){ this.words=words; this.speak=function(){ console.log(this.words); console.log(this); }}var cat = new Pet('Miao')cat.speak()控制台输出:
MiaoPet { words: 'Miao', speak: [Function] }新闻热点
疑难解答