使用this对象的最常见方式是在函数内部。在函数中,this关键字引用的是调用该函数的对象。如果没有特别指定,函数的this默认是全局(window)对象。例如:
function sayHello(){console.log("Hello, " + this.name);}sayHello(); // 输出 Hello, undefined在这个例子中,因为没有指定this对象,所以this默认为全局(window)对象,而window对象中没有name属性,所以输出undefined。
当我们想要指定this对象时,可以使用一些关键字和方法。例如,我们可以使用call和apply方法来绑定this:
var person = {name: "John",age: 30}function sayHello(){console.log("Hello, " + this.name);}sayHello.call(person); // 输出 Hello, JohnsayHello.apply(person); // 输出 Hello, John在这个例子中,我们将person对象作为参数传递给了call和apply方法,这样就可以将该对象绑定到函数中的this上了。
除了使用call和apply方法,我们还可以使用箭头函数来保留当前this对象。箭头函数的this与其声明时所在的上下文相同。例如:
var person = {name: "John",age: 30,sayHello: function(){setTimeout(() => {console.log("Hello, " + this.name);}, 1000);}}person.sayHello(); // 输出 Hello, John在这个例子中,我们使用箭头函数来保留了this对象,在settimeout函数中仍然可以引用到person对象中的name属性。
除了在函数中使用this对象外,我们还可以在对象中使用this。在对象内部,this关键字可以引用该对象本身。例如:
var person = {name: "John",age: 30,sayHello: function(){console.log("Hello, " + this.name);}}person.sayHello(); // 输出 Hello, John在这个例子中,我们定义了一个person对象,并在其中定义了一个sayHello方法。在方法内部,我们使用this来引用对象本身的属性。
总之,JavaScript中的this关键字可以帮助我们引用当前执行代码块所属的对象。在函数中,this默认是全局对象,但我们可以使用call、apply等方法来指定this对象,或者使用箭头函数来保留当前this对象。在对象内部,this关键字可以引用该对象本身的属性。
上一篇:javascript中判断不等于
下一篇:javascript中两个定时器函数









