我想使用实例访问静态属性。像这样
function User(){
console.log('Constructor: property1=' + this.constructor.property1) ;
}
User.prototype = {
test: function() {
console.log('test: property1=' + this.constructor.property1) ;
}
}
User.property1 = 10 ; // STATIC PROPERTY
var inst = new User() ;
inst.test() ;
这是jsfiddle中的相同代码
在我的情况下,我不知道实例属于哪个类,因此我尝试使用实例的“构造函数”属性访问静态属性,但未成功:(
这可能吗 ?
最佳答案
这就是问题所在,您的实例没有constructor
属性-您已经覆盖了整个.prototype
对象及其默认属性。相反,使用
User.prototype.test = function() {
console.log('test: property1=' + this.constructor.property1) ;
};
而且,您也可能只使用
User.property1
而不是通过this.constructor
绕行。另外,您不能确保您可能要在其上调用此方法的所有实例的constructor
属性都指向User
-因此更好地直接和显式访问它。关于javascript:如何访问静态属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16345006/