11

いくつかの場所で(たとえば、MSDNの「 JavaScript用のWindowsランタイムコンポーネントの作成、C#およびVisual Basicで」)、JavaScriptから使用するクラスを.NETで作成する場合は、封印されたクラスにします。

これは恣意的な制限のようです。JavaScriptが封印されたクラスでのみ機能するのはなぜですか?

4

1 に答える 1

7

JavaScriptアプリケーションに公開されるWindowsランタイムオブジェクトは、JavaScriptの観点から封印されています。WinRTオブジェクトにexpandoプロパティを追加することはできません。ただし、C ++およびC#からは、オブジェクトが継承をサポートしている場合、winrtオブジェクトを継承できます(たとえば、ほとんどのXamlクラスは継承をサポートしていますが、他のほとんどのクラスはサポートしていません)。

WinRTオブジェクトがJSから封印される理由は、アプリが何をしたかに関係なく、winrtオブジェクトが同じように動作するようにするためです。アプリがオブジェクトの関数プロパティを再定義すると、アプリの他の部分が誤動作する可能性があります。

于 2011-09-21T13:27:30.877 に答える