4

MooTools には独自のinstanceOf(instance, Type)機能があります。
Javascriptのネイティブ演算子とは何か違うことをしているとしかinstanceof思えませんが、何がわからないようです。

関数の違いや目的を説明できる人はいinstanceOf()ますか?

4

2 に答える 2

3

instanceOftypeOfMooTools の内部関数は、ネイティブの対応する関数よりも優れた型トラバーサルを実行します。

typeOf は、次の点で少し便利です。

typeof []; // object
typeOf([]); // array
typeof new Date(); // object
typeOf(new Date()); // date

instanceOf は主に Class に使用されますが、Types コンストラクターでも機能します。

例えば。

var foo = new Class(),
    bar = new Class({
        Extends: foo
    });

var foobar = new bar();

instanceOf(foobar, bar); // true
// but also due to Extends prototype chain and the constructor:
instanceOf(foobar, foo); // true

// as well as standard behaviour like
instanceOf([], Array); // true
instanceOf(4, Number); // true vs 4 instanceof Number == false

ソースを参照してください: https://github.com/mootools/mootools-core/blob/master/Source/Core/Core.js#L47-58

mootools のタイプのコンストラクターの多くは、ダックタイピングを容易にするためにオブジェクトを装飾しているため、typeOf と instanceOf は実際の意味のある結果で機能します。

mootools タイプ関数もお読みください

于 2012-09-22T11:12:41.537 に答える
2

少なくとも:

> "" instanceof String
false
> instanceOf("", String)
true
于 2012-09-21T20:18:09.143 に答える