4

cleanからメソッドを呼び出そうとしてgetUserいますが、 が返されますundefined。を呼び出すとu.test()、完全に機能します。

この問題を解決するにはどうすればよいですか?

class User
    constructor: () ->
        @db = # connect to db...

    clean: (user, callback) ->
        delete user.password
        callback user


   getUser: (id) ->
       @db.get id, (err, user) ->
            @clean user, (u) -> console.log u

   test: () ->
           @clean {name: "test", password: "hello"}, (u) ->
                console.log u

u = new User
u.getUser()
4

1 に答える 1

3

=>内部関数が必要です。

内部関数では、-> を使用するとundefined、デフォルトでバインドされる通常の関数になります。this=> を使用して、関数インスタンス化コンテキストの値にバインドします。

于 2013-03-01T13:38:19.463 に答える