2011-07-14 10 views
0

私は偶然paramsがオブジェクトである以下の声明に$(undefined)出くわし:

var $this = $(params._this) || $(this); 

$(params._this)はjQueryオブジェクトであり、常にtrueに評価されるように、これは、動作しませんでした。

面白いことに、私はそれを確認する方法がわかりませんでした。それは空のオブジェクトではなく(すなわち$.isEmptyObject($(undefined)) == false)、それは関数でも「普通のオブジェクト」でもありません(つまり$.isPlainObject())。

私は次のように文を修正することになった:、

var $this = (params._this == undefined) ? $(params._this) : $(this); 

私の質問は、「評価」する方法(わからない何語使用する)$(undefined)がありますか?これには何か使用はありますか?

答えて

7
var $this = $(params._this || this); 
2

$(undefined)は空のjQueryオブジェクトです。 $()に相当します。時にはそれは$(document)の代わりに$(document).ready(...)共通のイディオムで使用されます。

+0

この:あなたのケースでは

$(undefined).selector == '' 

を知っておくと便利です。ありがとう! –

0

あなたのケースで最も適切な方法は、DanCが言ったことのようですが、あなたはそれのセレクタチェックすることにより、未定義のjQueryオブジェクトを確認することができます。

var $this = $(params._this).selector != '' ? $(params._this) : $(this); 
関連する問題