What is a best practice for ensuring “this” context in Javascript?

后端 未结 8 1430
刺人心
刺人心 2021-02-14 20:37

Here\'s a sample of a simple Javascript class with a public and private method (fiddle: http://jsfiddle.net/gY4mh/).

function Example() {
    function privateFun         


        
8条回答
  •  暗喜
    暗喜 (楼主)
    2021-02-14 21:10

    I would say assigning self to this is a common technique:

    function Example() {
        var self = this;
    
        function privateFunction() {
            console.log(self);
        }
    
        self.publicFunction = function() {
            privateFunction();
        };
    }
    

    Using apply (as others have suggested) also works, though it's a bit more complex in my opinion.

    It might be beyond the scope of this question, but I would also recommend considering a different approach to JavaScript where you actually don't use the this keyword at all. A former colleague of mine at ThoughtWorks, Pete Hodgson, wrote a really helpful article, Class-less JavaScript, explaining one way to do this.

提交回复
热议问题