我只是想以这种方式在javascript中获得“getter”
var Product = function(){
var self = this;
var _id = function() {
return self.styleCode + '-' + self.materialCode + '-' + self.colourCode;
}
self.materialCode = ''
self.colourCode = ''
..
self.id = _id()
}
..
var obj = new Product();
//.. initialize properies
obj.id // = "--"
但似乎每次我都不相信这个功能。 我尝试使用这个Javascript: Use function as variable这样的东西
var Product = function(){
var self = this;
self.materialCode = ''
self.colourCode = ''
..
get self.id() { return self.materialCode + '-' + self.colourCode; }
}
但我在get关键字上遇到异常。 任何的想法? 感谢
答案 0 :(得分:4)
您可以使用id
在self
上定义Object.defineProperty
属性,就像这样
Object.defineProperty(self, 'id', {
get: function () {
return self.materialCode + '-' + self.colourCode;
}
});
您可以在MDN上看到this example,以供参考。
答案 1 :(得分:3)
使用Object.defineProperty
on MDN。
var Product = function(){
var self = this;
self.materialCode = ''
self.colourCode = ''
Object.defineProperty(self, "id", {
//printing the full code here
get : function(){return self.materialCode + '-' + self.colourCode;},
set : function(value){ null },
enumerable : false,
configurable : false
//this is the default set up for Object.defineProperty when using getters and setters,
//those two other properties default to false.
});
}
var obj = new Product();
obj.materialCode = 124;
obj.colourCode = 5783;
alert(obj.id);
只需使用obj.id
调用。
您可以设置set
和get
功能。并将其用作普通的财产声明。我敦促您阅读 MDN 上的文章,以了解有关可能性的更多信息。
答案 2 :(得分:0)
是另一种方式
var xvar = new function(id){
this.toString = this.valueOf = function() {
return $(id).width();
};
}('#y');
答案 3 :(得分:0)
getter和setter以不同的方式制作
使用此代码
self.id = _id();
存储在构造函数
中调用的_id()的self.id返回值使用此代码
get self.id()
您正在使用参数声明一个getter(正确方式get id()
)
在这里你可以找到关于getter / setter的有用信息,不要忘记firefox GETTER 和 SETTER
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get
继续警告!此代码在非firefox浏览器中不起作用!