首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript中的"this“

JavaScript中的"this“
EN

Stack Overflow用户
提问于 2010-12-28 02:42:45
回答 3查看 352关注 0票数 2

我正在尝试理解如何将JavaScript函数组合成一个对象的语法。

问:这是正确的方法吗?

我问这个问题的原因是因为我正在Firebug中查看它,我希望能够深入查看myVar和myVariable的值,但Firebug只说"this“是一个对象对象。

代码语言:javascript
运行
复制
var myObject = {
    init: function() {
        var myVar = 1;
        myObject.myVariable = 2;
        console.log('"this" when called as an object: ' + this);
    }
}
myObject.init();

另外,在声明时直接调用它的有趣的小语法是什么?关于()的一些东西,但是当我删除最后一行并将()放在声明的末尾时,我得到了一个语法错误。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-28 02:48:28

这将创建一个字符串:

代码语言:javascript
运行
复制
'"this" when called as an object: ' + this 

但是this不是字符串,所以会调用它的toString()原型。这就是为什么你只能看到[object Object]的原因。

如果您想让Firebug显示实际的对象,可以执行一个简单的console.log(this),或者直接使用console.dir(this)查看内容。

票数 3
EN

Stack Overflow用户

发布于 2010-12-28 02:51:48

“有趣的小语法”在这里并不适用,因为您实际上并不是在创建一个“函数对象”--它只是一个具有属性值的对象,它的值是对一个函数对象的引用。

然而,尽管它在Stackoverflow上已经做得很死了,但你可能正在谈论这样的事情:

代码语言:javascript
运行
复制
var myobject = (function() {
  var something = { whatever: "for example" };
  return {
    init: function() {
      this.foo = "hello";
      // initialize
    },
    getSomething: function() { return something.whatever; }
  };
})();

现在"myobject“是通过调用一个匿名函数来初始化的,该函数将在该语句之后立即被抛出。但是,由函数调用形成的闭包仍然有效。

票数 2
EN

Stack Overflow用户

发布于 2010-12-28 02:50:09

下面是JavaScript object creation的一个很好的参考资料

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4540975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档