为了账号安全,请及时绑定邮箱和手机立即绑定

直接为变量赋值一个函数和引用一个函数有什么区别?

直接为变量赋值一个函数和引用一个函数有什么区别?

直接为变量赋值一个函数和引用一个函数有什么区别?如:片段1和片段2片段1function fn(){  var box = document.getElementById("box");   box.onclick = function(){      console.log(111);   };   box = null; }片段2function fn(){  var box = document.getElementById("box");   box.onclick = click; }function click(){  console.log(111); }片段1中onclick里面的函数允许访问fn中的变量,而片段2中的onclick函数不允许访问fn中的变量,我是这样想的,因为片段2中的click由于是在fn外部定义的所以无法访问fn中的变量,那么也就是说在片段2中为onclick赋值实际上是引用而非拷贝?
查看完整描述

1 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

不不不, 你又不是调用方法, 传递参数, 所以这两个例子的核心不是什么引用/拷贝的问题

这是作用域(原型链)的问题

变量在不同的作用域有不同的访问权限:
子作用域能访问父作用域
父作用域不能访问子作用域
同级作用域无法互相访问


查看完整回答
反对 回复 2018-12-10
  • 1 回答
  • 0 关注
  • 375 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信