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
展开
 我来答
tt78901234
2014-11-27 · TA获得超过159个赞
知道小有建树答主
回答量:212
采纳率:100%
帮助的人:47.9万
展开全部
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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式