gpt4 book ai didi

javascript - 从 html 调用 javascript 对象方法

转载 作者:行者123 更新时间:2023-11-30 13:07:27 24 4
gpt4 key购买 nike

我对 Javascript 编程还比较陌生。我正在处理一个示例,但在从 HTML 调用对象的方法时遇到困难。我怀疑这与方法的范围界定或外部化有关,但我不确定。

index.html:

<script type="text/javascript">
var f = new Fred();
f.bar();
f.foo();
</script>

弗雷德.js:

function Fred() {
this.a = 1;

function foo() {
if (a == 1) {
a++;
}
var e = 0;
}

this.bar = function () {
var a = 3;
var b = 4;
};

this.c = 3;
this.d = 4;

bar() 的调用有效,对 foo() 的调用无效。

最佳答案

是的,你是对的,这确实与作用域和闭包的概念有关。如果您熟悉其他面向对象的语言(如 Java 或 C#),您可以将 foo() 函数视为“私有(private)”方法。它仅在 Fred() 对象的范围内可用。 bar() 函数是“公共(public)的”,因为用 this.bar 声明它会将它添加到您的 Fred() 对象的公开可用属性中。因此,为了也使 foo() “公开”,然后将其声明为:

this.foo = function () {
if (a == 1) {
a++;
}
var e = 0;
}

要更深入地解释 javaScript 中的闭包,请尝试此链接:http://www.sitepoint.com/javascript-closures-demystified/

关于javascript - 从 html 调用 javascript 对象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15161862/

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