gpt4 book ai didi

javascript - 将值传递给匿名函数,函数位于对象值内

转载 作者:行者123 更新时间:2023-12-01 03:44:04 24 4
gpt4 key购买 nike

我试图进行检查以确保对象在返回之前包含一个值,但是我似乎无法传递 1 this.map_options.map_type(1) 的值到匿名函数,因为 console.log 显示 undefined

MarvMap.prototype.init = function() {
loadApi.call(this);

// Setup map options and map reference
this.mapReference = null;
this.map_options = {
map_type: function(i) {
console.log(i);
let x = [ 'test1', 'test2', 'test3', 'test4' ];
if (x[i] !== undefined) {
return x[i];
} else { exit(this.errors.map_type(i)); }
}.call(this)
};

build.call(this);
};

这就是我尝试从map_options.map_type检索值的方式。

console.log('MapType: ' + this.map_options.map_type(1));

最佳答案

这是我如何让它工作的:

<script>
function MarvMap (){
}

MarvMap.prototype.init = function() {
// Setup map options and map reference
this.mapReference = null;
this.map_options = {
map_type: function(i) {
console.log(i);
let x = [ 'test1', 'test2', 'test3', 'test4' ];
if (x[i] !== undefined) {
return x[i];
} else { }
}.bind(this)
};
};

var a = new MarvMap();
a.init();
console.log('MapType: ' + a.map_options.map_type(1));
</script>

您需要使用bind而不是call

关于javascript - 将值传递给匿名函数,函数位于对象值内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43677785/

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