向“类”添加属性在JavaScript
Adding a property to a "Class" in JavaScript
javascript中没有实际的类。但是你必须利用你得到的。
让我们以"Class"为例:
var example = function (string) {
this._self = string;
}
有了上面的代码,你可以这样做:var ex = new example("Hello People."),
display = ex._self; // returns "Hello People."
我认为通过使用像example.prototype.newFun = function(){}
这样的东西会给那个"类"添加一个新属性。但是它在我的代码中不起作用。
这是我正在测试的完整代码:
var example = function (string) {
this._self = string;//public, var like, storage
}
var showExample = new example("Hello People");
showExample.prototype.display = function (a) {//code stops here, with error "Uncaught TypeError: Cannot set property 'display' of undefined"
return a;
}
console.log(showExample._self);
console.log(showExample.display("Bye"));
我要做的是将display
函数添加到示例函数中作为"公共函数"。我可能做错了什么
拥有原型的不是对象,而是用来创建对象的函数:
var example = function (string) {
this._self = string;
}
example.prototype.display = function (a) {
return a;
};
因为没有showExample
的原型-它只是example
的一个实例。试着这样做:example.prototype.display = function (a) {}
,它会工作的。
这里有更多关于JavaScript中的类的内容:
-
3种定义类的方法
-
我喜欢Classy处理这个问题的方式,也喜欢CoffeeScript中实现类的方式。
可以修改showExample的构造函数。
。
showExample.constructor.prototype.display = function (a) {
return a;
}
您尝试向example
(showExample)实例的prototype
添加方法。实例没有原型。尝试example.prototype.display = function() {/*...*/};
(换句话说,将该方法添加到showExample
的constructor
的prototype
,即example
)并再次检查。之后,example
的所有实例都"知道"display
的方法,或者用你的话来说,display
对所有实例都是"公开的"。
您可以使用showExample.display = function() {/*...*/};
将方法添加到实例。这样,只有showExample
知道display
的方法。
在你的例子中,showExample是example的对象…
使用example.prototype.display = function(a)...
- 保存具有相同属性 JavaScript 的元素上的值
- DOM 元素上的空样式属性:JavaScript
- 基于一个属性Javascript检索多个对象
- xml获取属性javascript不会;无法处理childNodes
- 当输入填充了必需的属性javascript/html/css时,如何更改焦点颜色
- 如何处理未定义属性的未定义属性 javascript 类型错误
- 向嵌套对象添加属性 - Javascript
- 属性 Javascript 的访问属性
- 更改链中的 css 属性 - JavaScript
- 更改属性 Javascript 方式的值
- 如何从 url 解析 xml 获取属性 javascript
- 语法错误:缺少:在属性 javascript 之后
- 创建 if 条件基于 CSS 属性 -- JavaScript
- 访问节点的属性javascript二进制搜索树
- 访问父函数属性Javascript
- 为什么未定义此对象的属性?Javascript
- 访问私有属性Javascript OOP
- 访问数组中的属性?(Javascript)
- 动态添加参数作为对象的属性-JavaScript
- 冲突/方法/属性Javascript错误