[英]Javascript constructor to access own private method?
我的課堂上有一個我不想公開的方法。 我想知道是否可以從構造函數訪問該方法?
例如:
(function () {
var Config = function() {
this.data = this.getOptions();
var options = document.querySelector('.options');
options.addEventListener('click', this.toggleOption, false);
};
Config.prototype = function() {
var getOptions = function() {
// public method
},
toggleOption = function() {
// private method
};
return {
getOptions: getOptions
};
}();
var config = new Config();
})();
我很抱歉,是否曾經有人問過,但這可能嗎?
是的,有可能:D
演示: https : //jsbin.com/xehiyerasu/
(function () {
var Config = (function () {
function toggleOption () {
console.log('works')
}
var Config = function() {
this.data = this.getOptions();
var options = document.querySelector('.options');
options.addEventListener('click', toggleOption.bind(this), false);
};
Config.prototype = (function() {
var getOptions = function() {
// public method
};
return {
getOptions: getOptions
};
})();
return Config;
})();
var config = new Config();
console.log('Is toggleOption private? ', !config.toggleOption)
})();
這取決於您為什么要公開此內容。
例如,如果您要公開該變量以進行單元測試,則可以執行以下操作:
if (window.someUnitTestingGlobal) {
var gprivate = {
toggleOption: toggleOption
};
}
return {
getOptions: getOptions,
gprivate: gprivate
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.