向函数添加原型意味着什么
What does it mean to add a prototype to a function?
给定:
var x = function () {
};
x.prototype = { abc: 25 };
有人能向我解释一下这意味着什么吗。这能在没有.protype的函数内完成吗?
var x = function () {
// something here ?
};
原型是类模型在JavaScript中的工作方式-您创建了一个类x
,它的属性abc
默认为25
:
var obj = new x();
alert(obj.abc); // 25
函数x
是类构造函数,它在创建该类的新实例时被调用,并可以对其进行初始化。这当然意味着你可以在那里设置abc
属性:
var x = function()
{
this.abc = 25;
};
var obj = new x();
alert(obj.abc); // 25
然而,这被认为是效率较低的方法:
- 您必须操作创建的每个对象,而不是永远在原型上设置属性
- 该属性存储在每个对象上,每次都消耗内存,而不是在原型上存储一次
ECMAScript Harmony有一个更好的语法来定义类和原型,但这个语法还没有在任何浏览器中实现:
class x {
constructor() {
...
}
public abc = 25;
}
这相当于您的代码定义了原型,只是对相关操作进行了更好的分组。
相关文章:
- 这个问号在Flow中意味着什么:“;?()=>“无效”;
- 在递归生成器函数中,yield后面的*(星号/星号)语法意味着什么
- 在jQuery中使用$('body').html('')意味着什么
- webkitTransition,这对使用Jquery的CSS-3意味着什么
- Javascript:var%20C与常规var相比意味着什么
- “{}”在下面的函数中这意味着什么
- 两个数组索引一个接一个地放置时意味着什么
- 双括号在javascript中意味着什么以及如何访问它们
- 这个文档语法在MDN中对JavaScript函数意味着什么
- 这个表达式在JavaScript中意味着什么:if(special_validations中的$(element).at
- 可变键控集合在javascript中意味着什么
- 排除符号链接的npm警告意味着什么
- 光骨头在计算机领域意味着什么
- 用JavaScript中的+添加到innerHTML意味着什么
- 跨领域意味着什么?JSONP在这种情况下的立场是什么
- 将变量={}传递到函数中意味着什么
- 在 JavaScript 中,当一个变量用逗号分隔的 3 个不同名称声明时,这意味着什么?
- 当使用JavaScript时“未定义”某些内容时,这意味着什么?
- 使用Javascript实用程序意味着什么
- 是什么让这两个功能分别是“公共”和“私有”,这意味着什么?