Are Interfaces in JavaScript necessary?

前端 未结 5 1063
再見小時候
再見小時候 2021-02-04 00:31

I suppose this could apply to any dynamic language, but the one I\'m using is JavaScript. We have a situation where we\'re writing a couple of controls in JavaScript that need t

5条回答
  •  鱼传尺愫
    2021-02-04 01:05

    Another alternative to the interfaces is offered by bob.js:

    1. Check if the interface is implemented:

    var iFace = { say: function () { }, write: function () { } };  
    var obj1 = { say: function() { }, write: function () { }, read: function () { } }; 
    var obj2 = { say: function () { }, read: function () { } }; 
    console.log('1: ' + bob.obj.canExtractInterface(obj1, iFace)); 
    console.log('2: ' + bob.obj.canExtractInterface(obj2, iFace)); 
    // Output: 
    // 1: true 
    // 2: false 
    

    2. Extract interface from the object and still execute the functions properly:

    var obj = {  
        msgCount: 0, 
        say: function (msg) { console.log(++this.msgCount + ': ' + msg); }, 
        sum: function (a, b) { console.log(a + b); } 
    }; 
    var iFace = { say: function () { } }; 
    obj = bob.obj.extractInterface(obj, iFace); 
    obj.say('Hello!'); 
    obj.say('How is your day?'); 
    obj.say('Good bye!'); 
    // Output: 
    // 1: Hello! 
    // 2: How is your day? 
    // 3: Good bye! 
    

提交回复
热议问题