网站开发的8个步骤,申请完域名如何建设网站,网站建设在微信里打广告内容,简述制作网站的流程Javascript this关键字 指向详解
面向对象语言中 this 表示当前对象的一个引用。在 JavaScript 中 this 不是固定不变的#xff0c;它会随着执行环境的改变而改变。
1#xff09; 单独使用#xff0c;this 表示全局对象。
script typetext/javascript它会随着执行环境的改变而改变。
1 单独使用this 表示全局对象。
script typetext/javascriptconsole.log(this) // 指向window全局对象
/script2 在方法中this 表示该方法所属的对象。
var person {firstName: John,lastName : Doe,id : 5566,fullName : function() {return this.firstName this.lastName; // 指向person对象}
};
person.fullName(); // John Doe3在函数中this 表示全局对象。 在严格模式下this 是未定义的(undefined)。
script typetext/javascriptvar q hellovar func function(){var q wangconsole.log(this.q) // hello}func()
/scriptscript typetext/javascriptvar q hellovar func function(){var q wangconsole.log(this.q) // Cannot read property q of undefined}func()
/script在事件中this 表示接收事件的元素
button onclickthis.style.displaynone点我后我就消失了/button5 作为构造函数调用 构造函数试图初始化这个新创建的对象并将这个对象作为其调用上下文this 指向这个新创建的对象。
var q window
function Func() {this.q helloconsole.log(this.q) //hello
}
var obj new Func通过函数的call/apply方法间接调用 call/apply方法的第一个参数是调用上下文在函数体内通过this获得对它的引用。
var q window
function func() {console.log(this.q)
}
var obj {q: obj
}
func.apply() //window
func.call() //window
func.apply(obj) //obj
func.call(obj) //obj箭头独立函数 : 本身没有this内部的this就是外层代码块作用域中的this 因箭头函数没有this,固不能用作构造函数否则会报错
var a 0
var test (){var a 1console.log(this.a)
}
test() // 0