Javascript对象和变量

时间:2015-01-15 09:25:38

标签: javascript variables javascript-objects

当谈到javascript对象变量时,我真的很困惑。 如果我正在创建一个对象构造函数,那么使用它有什么区别。并使用var? EG:

var myObj = function(x){ 
    this.thing = x;
    var otherThing = 20;
    var lastThing = "I wish I knew more about javascript objects";
}

另一件事是设置这个。在上面的例子中使用变量你在对象中调用它:

   this['thing'];

是吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

以下是对MDN上面向对象的javascript的引用:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript

如果使用var关键字,那么这些变量将对您的对象是私有的。你不可能做myObj.otherThing

如果你使用它,那么变量是你对象的属性,所以你可以使用myObj.thing

当您从对象中调用变量时,您将使用this.thing,在对象外使用myObj.thing

希望有所帮助。

答案 1 :(得分:0)

没错。小心点:

var fn = function( x ){
    this[ 'thing' ] = x;
    return this;
}

console.log( fn( 2 ) ); // return window, and function set window[ 'thing' ] = 2
console.log( fn.apply( document, [ 3 ] ) ); // return document, and function set window.document[ 'thing' ] = 3

“this”指的是执行函数的上下文。如果在fn(2)之类的窗口中运行函数,则上下文是窗口。使用apply更改上下文。然后,如果您希望thing在当前函数中,请在函数上下文中使用var thing;

window[ 'thing' ] // is the same as window.thing
window[ '2' ] // is the same as window[ 2 ], but not window.2 (syntax error)