2010-06-14 4 views
2

Привет Я преобразовываю некоторый прототип javascript в jQuery javascript.jQuery плагин и класс прототипа

В прототипе мы можем создать Class.create для создания класса. Однако jQuery не предоставляет этого. Поэтому я решил переписать класс в плагин jQuery. Это лучшая практика? Меня беспокоит, что если я сделаю все для класса, то я добавлю много вещей в объект jQuery.

Другой вариант - использовать некоторые дополнительные строки кодов, которые я нашел http://ejohn.org/blog/simple-javascript-inheritance/#postcomment. После этого вы можете сделать следующее:

var Person = Class.extend({ 
    init: function(isDancing){ 
    this.dancing = isDancing; 
    }, 
    dance: function(){ 
    return this.dancing; 
    } 
}); 

Или же, я нашел этот плагин JQuery под названием HJS, что позволяет создавать класс, а также. http://plugins.jquery.com/project/HJS

Однако, я не использую, необходимо использовать эти плагины, чтобы позволить мне использовать класс или я могу просто преобразовать класс в способ написания плагина jQuery, пожалуйста, советую. Большое спасибо!

ответ

1

jQuery не обрабатывает наследование прототипа JavaScript.
Я не думаю, что было бы правильно обрабатывать ваши классы с помощью jQuery - это просто для этого не предназначено. Основная сила jQuery заключается в кросс-браузерной совместимости, ajax и DOM-манипуляции. Кроме того, он предлагает очень мало полезных функций и не предлагает каких-либо расширений JavaScript, в отличие от прототипа.
Таким образом, миграция многих из этих функций невозможна, но вы можете продолжать использовать нужные вам функции из прототипа.

+0

Спасибо за ваш ответ. Я думаю, вы правы. Плагин jQuery для этого не предназначен. Когда я работал над переходом от прототипа к jQuery, я понял, что у прототипа больше возможностей с точки зрения всех методов манипуляции DOM, поскольку они расширяют собственный элемент DOM. Однако я не могу удержать функции от прототипа. Мне нужно преобразовать все в jQuery. Я не хочу поддерживать две разные структуры. Поэтому, возможно, я должен использовать метод class.Extend выше для достижения чего-то вроде Prototype class.create. – Shanison

Смежные вопросы