0

だから、私が次のスクリプトを持っていたとしましょう:

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

基本的に、 999に設定されnew hey.init(999)た新しいhey変数を呼び出して取得できますhey.foo。しかし、そうすると、hey.init(999).check()は定義されなくなります。スクリプトを模倣する方法はありますが、新しいhey変数/関数を使用できるようにしますか?

編集:それについて申し訳ありませんに変更さhey.check()れましhey.init(999).check() た...

4

2 に答える 2

2

あなたがしているのは、実際には新しい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);
于 2010-09-03T23:15:20.363 に答える
0

わたしにはできる...

貼り付けると

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();、2番目のログにオブジェクトが表示されますfoo == 22

あなたの側で何が機能していないのですか?

于 2010-09-03T23:24:15.303 に答える