Как Вы пишете класс в JavaScript? [дубликат]

Мое решение - обертка вокруг app.route:

def corsapp_route(path, origin=('127.0.0.1',), **options):
    """
    Flask app alias with cors
    :return:
    """

    def inner(func):
        def wrapper(*args, **kwargs):
            if request.method == 'OPTIONS':
                response = make_response()
                response.headers.add("Access-Control-Allow-Origin", ', '.join(origin))
                response.headers.add('Access-Control-Allow-Headers', ', '.join(origin))
                response.headers.add('Access-Control-Allow-Methods', ', '.join(origin))
                return response
            else:
                result = func(*args, **kwargs)
            if 'Access-Control-Allow-Origin' not in result.headers:
                result.headers.add("Access-Control-Allow-Origin", ', '.join(origin))
            return result

        wrapper.__name__ = func.__name__

        if 'methods' in options:
            if 'OPTIONS' in options['methods']:
                return app.route(path, **options)(wrapper)
            else:
                options['methods'].append('OPTIONS')
                return app.route(path, **options)(wrapper)

        return wrapper

    return inner

@corsapp_route('/', methods=['POST'], origin=['*'])
def hello_world():
    ...
7
задан Community 23 May 2017 в 12:17
поделиться

6 ответов

Ну, JavaScript - это язык, основанный на прототипах, в нем нет классов, но вы можете иметь классическое наследование и другие шаблоны повторного использования поведения через клонирование объектов и создание прототипов.

Рекомендуемые статьи:

7
ответ дан 6 December 2019 в 19:41
поделиться

Это «вроде» возможно. Prototype имеет встроенную помощь по написанию классов на JS. Взгляните на это подробное описание того, как это можно сделать.

var namedClass = Class.create({
    initialize: function(name) {
        this.name = name;
    }

    getName: function() {
        return this.name;
    }
});
var instance = new namedClass('Foobar');
0
ответ дан 6 December 2019 в 19:41
поделиться

Если вы используете библиотеку, такую ​​как prototype или jQuery, это намного проще, но унаследованный способ сделать это.

function MyClass(){
}
MyClass.prototype.aFunction(){ 
}

var instance = new MyClass();
instance.aFunction();

Вы можете узнать больше об этом здесь http: // www .komodomedia.com / blog / 2008/09 / javascript-classes-for-n00bs /

1
ответ дан 6 December 2019 в 19:41
поделиться

JavaScript основан на объектах, а не на классах. Он использует прототипное наследование, а не классическое наследование.

JavaScript гибок и легко расширяется. В результате существует множество библиотек, которые добавляют классическое наследование в JavaScript.

0
ответ дан 6 December 2019 в 19:41
поделиться
function Foo() {
   // constructor
}

Foo.prototype.bar = function() {
    // bar function within foo
}
3
ответ дан 6 December 2019 в 19:41
поделиться

Javascript по умолчанию использует объектно-ориентированный объект на основе прототипов.

Однако, если вы используете библиотеку прототипов, например, вы можете использовать Class.create ().

http: / /prototypejs.org/api/class/create

Это позволит вам создать (или унаследовать) класс, после чего вы создадите его экземпляры с помощью new.

Другие библиотеки, вероятно, имеют аналогичные возможности.

2
ответ дан 6 December 2019 в 19:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: