Javascript 创建对象结构

Javascript create object structure

本文关键字:结构 创建对象 Javascript      更新时间:2023-09-26

我曾经写过很多Javascript,现在我只是跳回去,但似乎我已经失去了理智。我正在尝试使用函数创建一个对象,并且我正在以与我的在线搜索建议我应该这样做的方式相同。我创建此示例是为了展示我尝试过的多种方法。

<script>
function a(){
    function b(){};
    this.c = function(){};
    this.d = 0;
    var e = function(){};
    var f = 0;
}
a.g = function(){};
a.prototype.h = function(){};
var a2 = function(){
    function b(){};
    this.c = function(){};
    this.d = 0;
    var e = function(){};
    var f = 0;
}
a2.g = function(){};
a2.prototype.h = function(){};
</script> 

根据我的记忆,我应该能够调用 a.b()、a.c(a.d,同样也可以调用 a2

但是,当我尝试调用它们时,它不起作用。当我在控制台中键入变量名称时,它甚至没有将它们显示为一个选项。但是我可以调用 a.g()。我不能调用 a.h(),但我可以调用 a.prototype.h()。

我在chrome中尝试过这个,在Firefox和Safari中也尝试了一些东西。

据我从在线教程中可以看出,这不是我应该期望的方式进行交互。

bef是函数a范围内的变量。它们永远不会在该函数之外公开。

a被召唤cd被分配到任何this。如果调用new a()则它将是返回的实例。

g是直接a的属性,因此您可以调用它。

h在原型链上,因此它将像cd一样出现在使用new创建的a实例上。