2015-11-18 1 views
0

Я сделал простой объектДоля Javascript свойства

var myObject = { 
formname: $('form'), 
input: this.formname.find('input'), 

init: function() { 
    console.log(myObject.input) 
} 

}

myObject.init();

http://jsfiddle.net/t3fjffLg/

Но это не работает. Я хочу использовать свойство name в свойстве name2. Каков наилучший способ совместного использования свойств? Должен ли я использовать прототип?

ответ

0
var myObject = { 
    name: 'Johan', 
    name2: function(){return this.name}, 

    init: function() { 
     console.log(this.name2()) 
    } 
} 
+0

Это просто немного перебор, чтобы иметь функцию, просто чтобы поделиться значением. – Johansrk

+0

@Johansrk Я могу ошибаться, но это похоже на самый простой способ добиться того, что вы просили. Альтернативой является то, что Hatem упоминается в терминах установки свойства при инициализации. Что именно вы пытаетесь достичь? Как имя: «Johan», name2: this.name, даже если он работал, кажется совершенно бесполезным. – Serhiy

+0

Было бы неплохо, если бы вы делите селектор. См. Мой отредактированный код – Johansrk

0

Ваша цель - инициализировать «имя2» с тем же значением «имя». Таким образом, лучший подход, чтобы сделать это, чтобы сделать его внутри «INIT» метод:

var myObject = { 
    name: 'Johan', 
    name2: null, 

    init: function() { 
     this.name2 = this.name 
     console.log(myObject.name2) 
    } 
} 

myObject.init(); 

Или, если вы настаиваете, чтобы присвоить значение свойству в заголовке. Тогда вам нужно будет подойти так:

name2: function(){ return this.name } 
+1

Это был просто пример. Я думаю, вопрос в том, как делиться свойствами по всему объекту? – Johansrk