2016-05-13 2 views
0

Это то, что я думаю, что лучше всего подходит для создания объекта в JSJavascript практика создания объекта

function obj(){ 
     var x = "hi"; 
     this.getX(){return x;} 
    } 
    var y = new obj() 
    console.log(y.x); //this returns undefined 

Но от того, что я видел, используя this.variable используется чаще всего в создании объекта.

Я думаю в java, где вещи должны быть «частными» в классе (обратите внимание, что я прочитал о закрытии), применимо ли это в js?

Что считается лучшим способом создания объекта?

+2

http://stackoverflow.com/questions/500431/what-is-the-scope-of-variables-in-javascript – Keatinge

+0

Пожалуйста, покажите код, чтобы показать, что ваш просят точно. Из текста вопроса, похоже, что «локальная переменная» является более близким эквивалентом в Java. – Thilo

+0

Я принимал это из разных сообщений, которые я читал о var vs this. Также я читаю, что другая ссылка на ee, если это помогает. Спасибо –

ответ

4

Похоже, вы пытаетесь применить Java-концепции к JavaScript, но в JS все работает совершенно по-другому. Вы должны проверить MDN article on JavaScript closures.

var переменные существуют в закрытии. Они доступны из любой функции, объявленной в той же области.

var me = 'hello'; 
function someFunction() { 
    console.log(me); 
} 
someFunction(); //prints 'hello' to console 

это переменные будут непосредственно доступны, даже вне сферы, в результате объект.

function someFunction() { 
    this.me = 'hello'; 
} 
var instance = new someFunction(); 
console.log(instance.me); //prints 'hello' to console 
+0

, спасибо, что выглядит более подробно и просмотрит его. Но я ошибаюсь в том, чтобы использовать его так, как я делаю выше? Или нет? Я весьма озадачен. Он делает то, что я хочу. спасибо –

+0

Не сообщая нам, чего вы хотите добиться именно, нет «неправильного» (или, вернее, все, что работает, «правильно»). Оба шаблона используют их. – Thilo