js this指向练习题
时间: 2023-08-04 14:08:11 浏览: 158
好的,下面是一些关于 JavaScript 中 `this` 指向的练习题:
1. 下面这段代码中,`this` 指向谁?
```javascript
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.getAge = function() {
console.log(this.age);
}
var john = new Person('John', 30);
john.getAge();
```
答案:`this` 指向 `john` 对象。
2. 下面这段代码中,`this` 指向谁?
```javascript
var obj = {
name: 'John',
sayName: function() {
console.log(this.name);
}
};
obj.sayName();
```
答案:`this` 指向 `obj` 对象。
3. 下面这段代码中,`this` 指向谁?
```javascript
function greet() {
console.log('Hello, ' + this.name);
}
var person = {
name: 'John'
};
greet.call(person);
```
答案:`this` 指向 `person` 对象。
4. 下面这段代码中,`this` 指向谁?
```javascript
var name = 'Global';
function greet() {
console.log('Hello, ' + this.name);
}
var person = {
name: 'John',
greet: greet
};
var greet2 = person.greet.bind(person);
greet();
person.greet();
greet2();
```
答案:第一次 `this` 指向全局对象,第二次 `this` 指向 `person` 对象,第三次 `this` 也指向 `person` 对象,因为使用了 `bind` 方法将 `this` 绑定到 `person` 对象上。
阅读全文