//关于this的问题 第一个情况:
function Foo() {
this.name=10;
this.age=100;
console.log(this) //{name:10, age:100}
}
// var p=new Foo(); new 一个对象,this指的就是即将new出来的对象
// Foo() 调用情况下,this指window 输出{window}//关于this的问题 第二种情况:var obj={
x:5,
fn:function () {
console.log(this); //obj{x:10,fn:function}
console.log(this.x); //5
}
};
obj();
//函数作为对象的一个属性被调用时,this指该对象,即obj//关于this的问题 第三种情况:var obj= {
x: 10,
fn: function () {
console.log(this); //Window
console.log(this.x); //undefined
}
};
var fun=obj.fn;
fun()
//这里fn函数被赋值到另一个变量中,没有作为obj一个属性被调用,则this指window//关于this的问题 第四种情况:
var obj={ x:20}
var fn =function () {
console.log(this); //Object {x:20}
console.log(this.x) //20
}
fn.call(obj);
//当一个函数被call或apply调用时,this则取传入的对象的值或者:var x=20;var fn = function(){ console.log(this) //window console.log(this.x) //20};fn(); //调用fn函数时,this指的是window//关于this的问题 第五种情况:var obj={
x:10,
fn:function(){
function f(){
console.log(this); //window
console.log(this.x) //undefined
}
f()
}
};
obj.fn()
// 函数f虽然是在函数内部定义的,但仍然是普通函数,this指window.以上就是关于js函数中this的理解的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号