首页 > 解决方案 > 在 JavaScript 中直接使用对象名称(而不是 this 关键字)有什么缺点吗?

问题描述

假设我有以下代码:

var myObj = {
    // Case 1
    myFunc1: function() {...},
   
    // Case 2
    myFunc2: function() {
        console.log(this.myFunc1);

        console.log(myObj.myFunc1);
    }
}

在这两种情况下,结果是相同的。现在我的问题是:总是使用有什么缺点myObj.myFunc1()吗?我不喜欢使用this关键字,并且经常会出现一些我无法解决的意想不到的问题。如果我只是使用我的对象的名称来直接调用函数,我会遇到什么样的意外边缘情况?

标签: javascript

解决方案


这真的归结为 OOP 和实例与静态方法。

对于静态方法,结果应该相同。对于实例方法,函数结果可能会根据您拥有的对象实例和这些对象的状态而有所不同。

你可能想通读这个,它可以比我在这里添加的更详细地解释:

https://abdulapopoola.com/2013/03/30/static-and-instance-methods-in-javascript/


推荐阅读