prototype.call
时间: 2023-09-24 14:06:23 浏览: 48
`prototype.call` 是 JavaScript 中的一个函数方法,它可以让我们在一个对象上调用另一个对象的方法,并且可以指定 this 的值。在函数原型对象上定义了 call 方法,因此所有的函数都可以使用 call 方法。
语法如下:
```
function.call(thisArg, arg1, arg2, ...)
```
其中,`thisArg` 表示需要绑定到函数内部的 `this` 值,后面的 `arg1`, `arg2` 等表示传递给调用函数的参数。
举个例子,假设我们有以下对象:
```
const person = {
name: 'Alice',
sayHi() {
console.log(`Hi, my name is ${this.name}`);
}
}
```
我们可以使用 `call` 方法来调用 `sayHi` 函数,并且将 `person` 对象作为调用函数时的 `this` 值:
```
const anotherPerson = {
name: 'Bob'
}
person.sayHi.call(anotherPerson); // 输出:Hi, my name is Bob
```
这样调用后,`person` 对象中的 `sayHi` 函数中的 `this` 值就会指向 `anotherPerson` 对象,从而输出了 `Hi, my name is Bob`。
相关问题
Object.prototype.toString和 Object.prototype.toString.call
Object.prototype.toString是JavaScript中的一个方法,用于返回一个表示对象的字符串。它的主要作用是获取对象的类型信息。
而Object.prototype.toString.call是通过调用Object.prototype.toString方法,并将其作为函数来调用,可以用来获取任意值的类型信息。
例如,我们可以使用Object.prototype.toString.call来获取一个变量的类型信息,如下所示:
```javascript
const obj = {};
const arr = [];
const str = "Hello";
const num = 123;
const bool = true;
console.log(Object.prototype.toString.call(obj)); // [object Object]
console.log(Object.prototype.toString.call(arr)); // [object Array]
console.log(Object.prototype.toString.call(str)); // [object String]
console.log(Object.prototype.toString.call(num)); // [object Number]
console.log(Object.prototype.toString.call(bool)); // [object Boolean]
```
通过调用Object.prototype.toString.call并传入不同的值,我们可以获取到对应值的类型信息。
Object.prototype.toString.call
`Object.prototype.toString.call` 是 JavaScript 中用于获取一个值的类型的方法。它会返回一个字符串,表示该值的类型。例如:
```javascript
Object.prototype.toString.call("hello"); // "[object String]"
Object.prototype.toString.call(123); // "[object Number]"
Object.prototype.toString.call(true); // "[object Boolean]"
Object.prototype.toString.call(undefined); // "[object Undefined]"
Object.prototype.toString.call(null); // "[object Null]"
Object.prototype.toString.call([]); // "[object Array]"
Object.prototype.toString.call({}); // "[object Object]"
Object.prototype.toString.call(function() {}); // "[object Function]"
```
可以看到,`Object.prototype.toString.call` 返回的字符串中包含了值的类型信息。使用这个方法可以方便地判断一个值的类型。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)