js对象方法里面为什么不能用箭头函数
先上个代码例子，再说我不理解的地方，求指点，谢谢！
```
var name="window";
var obj={
  name:'netease',
   print1:()=>{
    console.log(this.name);
  
  }
}
obj.print1();//window

```
`es6`中的`this`是定义时绑定，跟运行时无关，我很纳闷就是这个例子中，定义时  `print1`方法里面的`this`不是应该最先查找到的就是`obj`里面的`name`吗，为什么输出是`window`，还是绑定到全局变量上去了?不是明明`print1`里面没有`this`，再查找外围`this`，先找到的应该是`obj`中的`this`吗？
谢邀。
下面这句话引自《深入理解ES6》
箭头函数没有 this/super/arguments/new.target 的绑定，这些值是由外围最近一层非箭头函数决定。
箭头函数的`this`和普通函数的`this`可以看成完全两个概念的东西，不用传统的this去理解。
我对`外围`的理解是，这个外围指的是`()=>{}`整体的外围，比如你的代码中：name属性的外围是什么？print1的外围是什么？。所以 `()=>{console.log(this.name);}`的外围已经出了obj，从而进入window
可以借助我下面的代码来理解：
```
    var name = "window";
    var obj = {
        name: 'netease',
        print1: () => {
            console.log(this.name);
        },
        print3: function () {
            return ()=>{
                console.log(this.name);
            }
        }
    }
    obj.print1();// window
    obj.print3()();// netease 注意是返回闭包函数
```