gpt4 book ai didi

javascript - 在 JavaScript 中隐藏对象的字段

转载 作者:行者123 更新时间:2023-11-30 12:34:51 25 4
gpt4 key购买 nike

我用这个函数构造函数为一个简单的秒表对象定义了一个蓝图:

function StopWatch() {
function now() {
var d = new Date();
return d.getTime();
}
this.start = now();
this.elapsed = function() {
return Math.round((now() - this.start) / 1000);
}
}

我现在可以在 s 中保存对新秒表的引用:

var s = new Stopwatch();

并获取耗时(以秒为单位):

s.elapsed();

但是 start 属性也是可以访问的。我怎样才能隐藏它?

最佳答案

您正在构造的对象中包含 start 属性,方法是

this.start = now();

相反,您可以简单地在本地声明变量,并且由于闭包属性,它仍然可用于 elapsed 函数。

function StopWatch() {
var start = (new Date()).getTime();

this.elapsed = function() {
return Math.round(((new Date()).getTime() - start) / 1000);
}
}

或者,你可以从函数返回一个对象,像这样

function StopWatch() {
var start = (new Date()).getTime();

return {
elapsed: function() {
return Math.round(((new Date()).getTime() - start) / 1000);
}
}
}

关于javascript - 在 JavaScript 中隐藏对象的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26374706/

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