vue methods中方法写法问题?

methods: {
    setCameraPostion: (()=>{
        let _eye = new Vector3();
        let eyeDirection = new Vector3();
        let target = new Vector3();
        let distance, newDistance;
        return function setCameraPostion(args) {
            _eye.copy(args.pos).sub(target);
            eyeDirection.copy(_eye).normalize();
            distance = _eye.length();
            newDistance = ...(有点长,略过);
            eyeDirection.setLength(newDistance).add(target);
            return eyeDirection;
        }
    })(),
}

以上写法是可以执行的,我想问得是这种写法是否可取?需不需要优化?
个人感觉这种辅助变量写在data里很别扭...强迫症了快
但缺点是无法使用this——不知道怎么用
谢谢

阅读 6.1k
2 个回答

vuejs的生命周期很好的提供了什么时候调用方法的时机, 在方法里写闭包的立即执行,个人是认为没必要的, 搞复杂了还浪费了使用this的便利.

如果这个组件有多个实例,所有的实例里的setCameraPostion method共用_eye,eyeDirection,target,distance,newDistance变量
还有用不了this是因为你用箭头函数声明method

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