0
なぜこのオブジェクトの "内部"関数にアクセスできないのですか?私はこれが以前に働いたように感じる。関数のようなJavascriptオブジェクト
var OfflineStorage = (function() {
function OfflineStorage() {
var db = new Dexie("OfflineStorage");
db.version(1).stores({
articles: "ArtNo,Description,Unit"
});
}
function getArticlesByArtNo(params) {
var regex = new RegExp(params.search, "i");
return db.articles
.filter(function (article) { regex.test(article.ArtNo) })
.toArray();
}
return OfflineStorage;
})();
このようにこのオブジェクトにアクセスしようとすると、エラーが発生します。
var offlinestorage = new OfflineStorage();
offlinestorage.getArticlesByArtNo(); <-- This throws an error 'is not a function'
これらの関数は匿名関数内のプライベートローカルシンボルです。どのような状況下でも、それらは暗黙的にオブジェクトプロパティとして表示されません。あなたはあなたが返す 'OfflineStorage'関数のプロパティとして* getArticlesByArtNoを明示的に*可視にすることができます。 – Pointy
いいえ、これまでにはうまくいきませんでした。以前は 'OfflineStorage.prototype.getArticlesByArtNo = function ... 'があったでしょう。 – Bergi
この関数をコンストラクタ内に配置することもできます。 'this.getArticlesByArtNo = function(params)....' –