JavaScript中使用bind 后 prototype 为undefined
时间: 2024-03-12 09:46:19 浏览: 105
在 JavaScript 中,使用 bind 方法会返回一个新的函数,该函数会将原函数绑定到新的 this 上,并带有指定的参数。这意味着,原函数的 prototype 属性不会被继承到绑定后的新函数上。
例如,假设有一个原型对象:
```javascript
function Example() {}
Example.prototype.test = function() {
console.log('test');
};
```
然后,我们使用 bind 方法创建一个新的函数,并将原函数绑定到一个对象上:
```javascript
var obj = {};
var boundTest = Example.prototype.test.bind(obj);
```
此时,boundTest 的 prototype 属性将会是 undefined,因为它是一个新的函数,不再继承原函数 Example.prototype 的属性。如果我们需要在绑定后的函数上访问原型对象的属性或方法,可以手动将其复制到新的函数上:
```javascript
boundTest.prototype = Example.prototype;
```
这样,boundTest 就可以访问 Example.prototype 上的属性和方法了。
阅读全文