代码之家  ›  专栏  ›  技术社区  ›  Azmisov

JavaScript:获取包含扩展变量的对象实例

  •  0
  • Azmisov  · 技术社区  · 14 年前

    var hey = {
        foo: 1,
        bar: 2,
        baz: 3,
        init: function(newFoo){
            this.foo = newFoo;
            return this;
        }
    }
    hey.check = function(){
        alert('yeah, new function');
    }
    

    基本上,我可以打电话 new hey.init(999) hey hey.foo 设置为999。但当我这么做的时候, hey.init(999).check() 有扩展变量/函数吗?

    hey.check() 嘿,伊尼特(999).检查() 很抱歉。。。

    2 回复  |  直到 14 年前
        1
  •  2
  •   aularon    14 年前

    你所做的并不是真的得到一个新的 hey hey.init 实例,仅包含 foo

    var hey =function() {
        this.foo = 1;
        this.bar = 2;
        this.baz = 3;
        this.init = function(newFoo){
            this.foo = newFoo;
        }
    }
    hey.check = function(){
        alert('yeah, new function');
    }
    
    
    //now instantiating our class, and creating an object:
    var heyInstance=new hey();
    heyInstance.init(999);
    alert(heyInstance.foo);
    
        2
  •  0
  •   Alex Mcp    14 年前

    对我来说很有用。。。

    当我粘贴

    var hey = {
        foo: 1,
        bar: 2,
        baz: 3,
        init: function(newFoo){
            this.foo = newFoo;
            return this;
        }
    }
    hey.check = function(){
        alert('yeah, new function');
    }
    console.log(hey);
    hey.init(22);
    console.log(hey);
    hey.check();
    

    在Firebug的控制台里,我收到了来自 hey.check(); 第二个日志显示了一个对象 foo == 22

    你那边有什么不行的?