Javascript 不同类型功能的术语
在JavaScript中,似乎有几个不同的类似函数的“组”。以下是我为他们编造的名字:Javascript 不同类型功能的术语,javascript,function,constructor,terminology,Javascript,Function,Constructor,Terminology,在JavaScript中,似乎有几个不同的类似函数的“组”。以下是我为他们编造的名字: “常规函数”:可以使用paren和new调用这些函数。大多数功能都属于这一类 “仅构造函数函数”:这些函数只能通过new调用。例如,Image,DOMParser,等等 “非构造函数”:这些函数可以用paren调用,但不能用new调用。例如,Math.round,Function.prototype “不可调用函数”:这些函数根本不可调用。例如,window.constructor,Document,Nod
- “常规函数”:可以使用paren和
调用这些函数。大多数功能都属于这一类new
- “仅构造函数函数”:这些函数只能通过
调用。例如,new
,Image
,等等DOMParser
- “非构造函数”:这些函数可以用paren调用,但不能用
调用。例如,new
,Math.round
Function.prototype
- “不可调用函数”:这些函数根本不可调用。例如,
,window.constructor
,Document
,等等NodeList
我还试图弄清楚,是否可以根据函数的
[[Prototype]]
(\uuuu proto\uuuu
)属性是否设置为function.Prototype
)来确定函数属于哪个“组”
- 大多数“常规函数”将具有
,但可以使用非标准的函数。原型
将其删除\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
- 大多数“构造函数专用函数”都有
。我找不到它们有对象.prototype
(因此,没有功能的任何情况。原型
或调用
)。这是否始终是案例/规范行为应用
- “非构造函数函数”似乎大部分都有
,除了函数.prototype
本身。是否有其他案例具有函数.prototype
对象.原型
- “不可调用函数”似乎总是有
对象。原型。是这样吗
我将在这里回答一些问题: 常规功能:
功能
构造函数:
Constructor
非构造函数:
方法
不可调用:
接口
这不是我真正想要的。“函数”和“构造函数”在一般情况下当然是正确的,但我正在寻找更具体的(“非构造函数”等)
在告诉您不能使用new
调用它时,“方法”并不比“函数”好,而且constructor
也没有说明只能使用new
调用它
在许多情况下,不可调用的函数只能从宿主对象的构造函数
属性访问。我认为其中大多数更准确地称为“构造函数”,而不是“接口”
[关于主机对象与本机对象的内容] 这是在正确的轨道上。考虑到(以及公认的答案及其注释),对于用户定义的函数是宿主对象还是本机对象,似乎存在一些分歧或混淆 为了避免这种情况,让我们只调用用户定义的函数UDF,而不必担心它们是主机函数还是本机函数。所以我们有UDF、主机对象和本机对象
- “常规函数”
- 每个UDF
- 本机对象,如
,对象
等字符串
- 宿主对象,如
(在Chrome18中测试)window.toString
- “仅构造函数函数”
- 没有本机对象
- 宿主对象,如
,DOMParser
Image
- “非构造函数函数”
- 本机对象,如
和Math.round
Function.prototype
- 宿主对象,如
DOMParser#parseFromString
- 本机对象,如
- “不可调用函数”
- 没有本机对象
- 宿主对象,如
,NodeList
DocumentFragment
因此,看起来在宿主对象和仅构造函数/不可调用函数之间可能存在连接,但宿主与本机之间的关系似乎不适用于非构造函数和常规函数。我不认为您所要求的函数有正式的命名,但在任何编程语言中,人们通常都是这样调用所有这些函数的:
- 常规功能:
功能
- 构造函数:
Constructor
- 非构造函数:
方法
- 不可调用:
(对于JS,这指的是较低级别的本机对象)接口
你和你的术语问题又来了!:)嘿,这一次让我困扰了好几天。我不知道我是不是在编一个没有的人工类别,但我想把它叫做什么。这是对面向对象JavaScript的一个很好的介绍,它应该能回答你的问题。@sp00m它根本不能回答。我想这是个问题这篇文章令人困惑,我会想办法改写它。