создание функции в объекте в javascript

у меня есть программа, и я думал создать объект, а затем функцию внутри него. Является ли это возможным? это похоже на это var x = function() {....}, и я хотел повторно использовать переменную x..

вот код:

$("#tbl").jqGrid({
    url: '',                            
    datatype: 'local',      
    jsonReader : {              
        root: function(obj) {
        //some codes here

           return root;
        },          
        page: "page",                   
        total: "pageCount",     
        records: "rows",    
        repeatitems:false,  
        id: "0" 
    },

    serializeGridData: function(postData) {
        var jsonParams = {
            .
            .//some codes here
            .

            'sort_fields': postData.sidx
        };

        if (postData.sord == 'desc')
        {
        ..//some codes
        }           
        else
        {
        ...//some codes
        }

        jpar = jsonParams;
        return 'json=' + jsonParams;
    },

    loadError: function(xhr, msg, e) { 
        showMessage('msg error');
    },
    colNames:['ID',...'Type'],      
    colModel:[
    ...//col model
    ],

    rowNum:5,           
    .
    .
    .//some codes here
    loadonce:false,         
    caption: "Main Account Group"
});

я хочу получить jsonReader, serializedGridData и loadError и создать для них объектную функцию. моя цель здесь - создать объект из функций из приведенного выше кода. кто-нибудь здесь знает, как это сделать?

кстати, в чем разница между методами и функциями.? может ли событие быть кодом как функция? Спасибо вам всем.


person jayAnn    schedule 22.03.2011    source источник
comment
Я не понимаю - код, который вы разместили, будет работать нормально, о чем вы спрашиваете?   -  person Mark Kahn    schedule 22.03.2011
comment
Разве это не то же самое, что и ваш предыдущий вопрос? stackoverflow.com/questions/5374977/   -  person Felix Kling    schedule 22.03.2011
comment
@феликс клинг. мне трудно создать отдельный файл .js, поэтому я ищу некоторые варианты. и, возможно, это может дать мне ответ о том, как это сделать в отдельном файле. Благодарность   -  person jayAnn    schedule 22.03.2011
comment
@ cwolves... да, это работает... я просто хочу знать, как отделить код (это события) и сделать его функцией. тогда, может быть, я мог бы просто вызвать их по переменной   -  person jayAnn    schedule 22.03.2011
comment
@jayAnn: Многим людям трудно вас понять, потому что вы используете неправильную терминологию, например, создаете объектную функцию или создаете объект из функций. Видно, что вы упускаете много базовых знаний о том, как JavaScript определяет объекты. Предлагаю упростить задачу. Если у вас есть jqGrid, который работает, вы можете опубликовать более полный код в своем вопросе, и мы покажем вам, как можно разделить части с помощью serializeGridData, например, в другом js-файле. ХОРОШО?   -  person Oleg    schedule 22.03.2011
comment
ок, олег, извини. я действительно новичок в этом..   -  person jayAnn    schedule 22.03.2011
comment
@jayAnn: Не проблема. Я просто пытаюсь найти способ, как можно помочь вам.   -  person Oleg    schedule 22.03.2011
comment
Не могли бы вы дополнительно объяснить, почему вы хотите разместить все параметры, отправляемые на сервер, как свойства другого параметра json? Какую технологию вы используете на стороне сервера (ASP.NET MVC, ASP.NET WCF, веб-сервис ASMX, PHP, сервлет Java или что-то другое)? Как выглядит определение метода сервера, которое вы используете? В опубликованном коде у вас есть только url: '', и он не дает никакой информации.   -  person Oleg    schedule 22.03.2011
comment
Я вижу, что вы используете datatype: 'local' в случае, если НИКАКИХ запросов к серверу не будет. Таким образом, метод serializeGridData никогда не будет вызываться. Как вы заполняете данные в сетке? Вы определили jsonReader. Таким образом, вы, вероятно, вставляете данные вручную с помощью addJSONData, в большинстве случаев это не очень хороший способ. Не могли бы вы вставить более полный код JavaScript, чтобы можно было лучше понять ваш код?   -  person Oleg    schedule 22.03.2011
comment
хорошо, олег... код, который ты дал мне в первом, теперь работает... большое спасибо... и спасибо, что поддержал меня, Олег :)   -  person jayAnn    schedule 22.03.2011


Ответы (1)


Раньше мне это очень помогало =)

Надеюсь, это поможет http://www.phpied.com/3-ways-to-define-a-javascript-class/

function jqFunctions() {
    this.serializeGridData = function(postData) {
        alert(postData);
    }
}

new jqFunctions().serializeGridData("hello");
person Abdo    schedule 22.03.2011
comment
привет, где я должен написать код для serializeGridData? а для чего это привет? - person jayAnn; 22.03.2011
comment
я заметил, что когда я копирую и вставляю код для serializeGridData в функцию jqFunctions() { this.serializeGridData = function(postData) {...}, он не работает... а также я не понимаю цель что это за новый jqFunctions().serializeGridData(hello); за - person jayAnn; 22.03.2011
comment
если вы поместите этот код между ‹script›‹/script› или в отдельный файл .js, он будет работать. jqFunctions — это класс. new jqFunctions() создает объект. привет - это параметр, который я передаю в serializeGridData. Он назначается postData в функции (postData). внутри функции, когда вы вызываете предупреждение (postData), оно предупреждает (привет) - person Abdo; 22.03.2011