这是我第一次尝试使用javascript创建具有函数和属性的类,但我无法理解为什么在我的代码中ShowValue函数返回默认值而不是调用之前的那个值。
<script type="text/javascript">
var $mylocalclass;
$(document).ready(function () {
$mylocalclass = myclass;
$mylocalclass.mypropname = "the_name_i_want_here";
});
var myclass = (function () {
var mypropname = "unspecified_name";
var ShowValue = function () {
alert(mypropname);
};
return {
ShowValue: ShowValue,
properties:{
mypropname: mypropname
}
}
})();
</script>
<button type="button" onclick="$mylocalclass.ShowValue();">Try Me!</button>
我想要做的是在不同的页面中使用相同的类,但根据本地属性的名称使用它,在本例中,本地属性的名称是本地存储对象的键。当然,如果我无法从页面设置属性,这将无法正常工作。
答案 0 :(得分:0)
您正在访问该函数中的私有变量mypropname
。要访问您设置的变量,请使用this
。
此外,您有3个mypropname
变量,其中2个未使用。在
var mypropname = "unspecified_name";
只是您在ShowValue
回调中使用的私有变量,而properties
变量中设置的变量并未在其他任何位置引用。
最后,这不是对象(或类)的实例,而是对象本身。
var $mylocalclass;
$(document).ready(function () {
$mylocalclass = myclass;
$mylocalclass.properties.mypropname = "the_name_i_want_here";
});
var myclass = (function () {
var mypropname = "unspecified_name";
var ShowValue = function () {
alert(this.properties.mypropname);
};
return {
ShowValue: ShowValue,
properties:{
mypropname: mypropname
}
}
})();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<button type="button" onclick="$mylocalclass.ShowValue();">Try Me!</button>
&#13;