Там в настоящее время нет смысла для ключевого слова public
в стандартном JavaScript.
Основываясь на исходном фрагменте кода, я подозреваю, что вы имели в виду:
function myObject(){
this.keyOne=1;
this.keyTwo=2;
this.keyThree=3;
function add(){
return this.keyOne+this.keyTwo+this.keyThree;
}
return {
add: add
};
}
Затем функция вернетобъект, который имеет только одно свойство: функция add
.Этот объект создается литералом объекта после ключевого слова return
.
Но тогда нет смысла использовать this
.Вы могли бы написать:
function myObject() {
var keyOne=1;
var keyTwo=2;
var keyThree=3;
function add() {
return keyOne + keyTwo + keyThree;
}
return {
add: add
};
}
Или даже более кратко:
function myObject() {
var keyOne=1;
var keyTwo=2;
var keyThree=3;
return {
add: function() {
return keyOne + keyTwo + keyThree;
}
};
}
Это дает дополнительное преимущество: вам не нужно называть его префиксом new
.Это просто обычная функция, которая создает и возвращает объект, который содержит другую функцию:
var o = myObject();
alert(o.add());
Вы можете разрешить вызывающей стороне указывать добавляемые числа, например:
function myObject(keyOne, keyTwo, keyThree) {
return {
add: function() {
return keyOne + keyTwo + keyThree;
}
};
}
var o = myObject(5, 4, 7);
alert(o.add());