gpt4 book ai didi

javascript - 原型(prototype) 'this' 不指向对象

转载 作者:搜寻专家 更新时间:2023-11-01 00:18:32 26 4
gpt4 key购买 nike

我已经在堆栈中查看了类似的问题,但无法提出解决方案。

我的问题是以下代码的 this 没有指向有问题的对象,而是指向 environment (window)在 Node.JS 中。

我确信这是微不足道的事情,但经过大约 2 小时的研究,我正式放弃了,是时候寻求帮助了。


代码:

var slice = Array.prototype.slice;

function Chain(options, links) {
if (!(this instanceof Chain)) return new Chain(options, slice.call(arguments));
return this;
}

Chain.prototype.quicklink = function quicklink(fn) {
console.log(this);
};


var Chain = require('./chains');
var chain = Chain();
var _ = chain.quicklink;

_('extern_var', 'something', '$callback');


预期:
this 指向Chain 对象。


结果:
this 指向 environmentNode.JS

中的 window


原型(prototype)设计:
我使用 JSBin 进行原型(prototype)设计。这是那里的原型(prototype)。它与我的 Node 环境具有基本相同的效果。 http://jsbin.com/OSaHaZAK/1/edit

最佳答案

使用applycall 调用它来设置预期的this 并传递参数

_.apply(chain, ['extern_var', 'something', '$callback']);

FIDDLE

关于javascript - 原型(prototype) 'this' 不指向对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21565175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com