Javascript 创建对象结构
Javascript create object structure
我曾经写过很多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中也尝试了一些东西。
据我从在线教程中可以看出,这不是我应该期望的方式进行交互。
b
、e
和f
是函数a
范围内的变量。它们永远不会在该函数之外公开。
当a
被召唤时,c
和d
被分配到任何this
。如果调用new a()
则它将是返回的实例。
g
是直接a
的属性,因此您可以调用它。
h
在原型链上,因此它将像c
和d
一样出现在使用new
创建的a
实例上。
相关文章:
- 在创建对象后附加一个jquery事件
- 错误:自动化服务器可以't创建对象
- 如何在不使用 new 关键字的情况下从函数创建对象
- 文本表示法VS.构造函数,用于在JavaScript中创建对象
- 创建对象函数原型和代码是错误的
- 使用Undercore创建对象集合
- 如何在JavaScript中创建对象时使用变量的值
- 正在创建对象的递归列表
- 这两种不同的创建对象文字的方法有什么区别
- ES6 const,用于在JavaScript中创建对象原型;这是一种模式吗
- 使用字符串作为名称创建对象
- 使用参数创建对象
- 如何在JS中创建对象的可变和不可变副本
- 用javascript创建对象的dynamic数组
- 在 javascript 中创建一个具有自定义结构的对象
- 如何创建固定结构的对象
- Javascript 创建对象结构
- 从字符串创建结构化对象的JavaScript函数
- 从伪层次结构创建嵌套对象
- Javascript用这样的数据结构创建对象