gpt4 book ai didi

javascript - 获取 JavaScript 对象文字中的设置访问权限

转载 作者:行者123 更新时间:2023-12-02 19:54:11 25 4
gpt4 key购买 nike

第一次使用对象文字,看来我不太理解它们。我需要的是具有对象范围的私有(private)变量,因此可以访问对象文本中的所有函数。

问题是这样的:

我有一个简单的 map 对象对象文字

var mapObj = {

init: function (lat, lng, documentID) {
var myOptions = {
center: new google.maps.LatLng(lat, lng),
zoom: 18,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById(documentID),
myOptions);

return map;
},

setMarker: function (lat, lng, map, contentObj) {
var myLatlng = new google.maps.LatLng(lat, lng);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: "Hello World!",
content: contentObj
});
}
};

这一切都很好,我可以将它用作 mapObj.init(....) 和 mapObj.setMarker(...) ,它们工作得很好。

我想要做的是存储其中一些变量值 - 例如 init() 方法中的“map”,然后让其他方法可以访问它。例如我不需要在 setMarker 中传递“map”,因为 mapObj 应该在 init 方法之后在内部保存 map 。

同样,我希望能够执行 mapObj.getMap() 来访问 init 中创建的 map 对象。

我无法弄清楚它是如何工作的。将 var map 声明为

var mapObj {
var map
}

例如抛出错误。

我是否期望它像 C# 一样工作?我应该使用经典的 javascript 'class' 结构吗?任何指示都会有所帮助,以便我可以继续前进。

谢谢

最佳答案

只需将其包装在一个函数中,如下所示:

var mapObj;
!function() {

var map;

mapObj = {

init: function (lat, lng, documentID) {
var myOptions = {
center: new google.maps.LatLng(lat, lng),
zoom: 18,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById(documentID),
myOptions);

return map;
},

setMarker: function (lat, lng, map, contentObj) {
var myLatlng = new google.maps.LatLng(lat, lng);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: "Hello World!",
content: contentObj
});
}
};
}();

现在 map 仅在该函数(及其包含的所有函数)内可用。 mapObj 在外部可用。

关于javascript - 获取 JavaScript 对象文字中的设置访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8871172/

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