javascript 函数添加属性的一点疑问


function fun(){
    fun.a = 1;
}
console.log( fun.hasOwnProperty("a") ); // false;

结果为: false


function fun(){

}
fun.a = 1;
console.log( fun.hasOwnProperty("a") ); // true;

结果为: true

两者区别是什么?

阅读 3.5k
2 个回答

函数定义了不调用,再好的戏也出不来。
第一个你调用一次也true:

fun();
console.log( fun.hasOwnProperty("a") );

函数体内的代码,只有你在调用函数时才会执行。你只是定义了函数,而没有调用它,怎么可能起作用?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题