JS里 构造函数名.方法名=function(){…函数体…} 怎么理解?
这是在学习JS模仿类的继承和prototype属性的相关内容时在网上看到的代码。自己仿照着也弄了一段代码,代码有效运行,可就是弄不明白什么意思。例如:<script>fu...
这是在学习JS模仿类的继承和prototype属性的相关内容时在网上看到的代码。自己仿照着也弄了一段代码,代码有效运行,可就是弄不明白什么意思。
例如:
<script>
function extendClass()
{
this.showMsg =function ()
{
alert("extendClass::showMsg inside");
}
}
extendClass.showMsg = function()
{
alert("extendClass::showMsg static outside ")
}
var obj = new extendClass();
obj.showMsg(); // 结果: extendClass::showMsg inside
extendClass.showMsg.call(obj); //结果:extendClass::showMsg static outside
</script>
extendClass.showMsg = function(){…} 这部分是什么意思?为什么showMsg属性(或者说是变量吧)没有被覆盖?
(附网址:http://www.cnblogs.com/yjf512/archive/2011/06/03/2071914.html ) 展开
例如:
<script>
function extendClass()
{
this.showMsg =function ()
{
alert("extendClass::showMsg inside");
}
}
extendClass.showMsg = function()
{
alert("extendClass::showMsg static outside ")
}
var obj = new extendClass();
obj.showMsg(); // 结果: extendClass::showMsg inside
extendClass.showMsg.call(obj); //结果:extendClass::showMsg static outside
</script>
extendClass.showMsg = function(){…} 这部分是什么意思?为什么showMsg属性(或者说是变量吧)没有被覆盖?
(附网址:http://www.cnblogs.com/yjf512/archive/2011/06/03/2071914.html ) 展开
1个回答
展开全部
extendClass.showMsg = function(){…}
是指给extendClass加了一个自己的showMsg方法,相当于:
function extendClass()
{
this.showMsg =function ()
{
alert("extendClass::showMsg inside");
}
showMsg = function(){…}
}
据我的理解,this指向实例化的obj,根据作用域链找到alert("extendClass::showMsg inside");这个的showMsg;
这里有一篇关于new做了哪些工作的文章,你看看
http://www.cnblogs.com/RitaRichard/archive/2011/10/12/2208902.html
是指给extendClass加了一个自己的showMsg方法,相当于:
function extendClass()
{
this.showMsg =function ()
{
alert("extendClass::showMsg inside");
}
showMsg = function(){…}
}
据我的理解,this指向实例化的obj,根据作用域链找到alert("extendClass::showMsg inside");这个的showMsg;
这里有一篇关于new做了哪些工作的文章,你看看
http://www.cnblogs.com/RitaRichard/archive/2011/10/12/2208902.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |