javascript - 为什么是0? 和30?
本文介绍了javascript - 为什么是0? 和30?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
1.下面程序执行后弹出什么样的结果?
function fn() {
this.a = 0;
this.b = function() {
alert(this.a)
}
}
fn.prototype = {
b: function() {
this.a = 20;
alert(this.a);
},
c: function() {
this.a = 30;
alert(this.a);
}
}
var myfn = new fn();
myfn.b(); //0?
myfn.c(); //30?
分析一下 谢谢!
解决方案
对象方法的优先级比原型方法要高,看例子:
function People(){
//对象方法
this.show = function(){
alert('对象方法');
}
}
//类方法
People.show = function(){
alert('类方法');
}
//原型方法
People.prototype.show = function(){
alert('原型方法');
}
var p = new People();
p.show();
打印结果:对象方法
。
推荐一篇文章:JS中的prototype,可以加深对prototype
的理解
这篇关于javascript - 为什么是0? 和30?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文