js报错“function is not defined” 50
请大家帮忙指点下,为何下段js代码会报“fun1isnotdefined”错误??<script>functionmyObj(){varstr1="hehe";this....
请大家帮忙指点下,为何下段js代码会报“fun1 is not defined”错误??
<script>
function myObj(){
var str1 = "hehe";
this.fun1 = function(str){
return "hu"+ str;
};
this.str2 = fun1(str1);
}
var obj1 = new myObj();
//alert(obj1.str2);
</script>
我知道原因了: 当通过构造函数创建对象时,里面通过this方式定义的私有函数,在引用时(不论是在对象的内部还是外部),前面都要加上“对象的引用”(外部是对象的实例名,内部是用this)。 所以,我在调用fun1时,需要写成“this.str2 = this.fun1(str1);”,这样就不会报这个错了~ 展开
<script>
function myObj(){
var str1 = "hehe";
this.fun1 = function(str){
return "hu"+ str;
};
this.str2 = fun1(str1);
}
var obj1 = new myObj();
//alert(obj1.str2);
</script>
我知道原因了: 当通过构造函数创建对象时,里面通过this方式定义的私有函数,在引用时(不论是在对象的内部还是外部),前面都要加上“对象的引用”(外部是对象的实例名,内部是用this)。 所以,我在调用fun1时,需要写成“this.str2 = this.fun1(str1);”,这样就不会报这个错了~ 展开
3个回答
展开全部
fun1()函数还没有定义,要定义后才能调用
追问
额我那句“this.fun1 = function(str){ return "hu"+ str; }; ”,不算定义是么??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有定义fun1这个函数啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询