JSFiddle:https://jsfiddle.net/dyncmuks/1/
methods
有没有办法让这项工作?
我可以将方法声明移到public class MainClass {
public static void main(String[] args){
printAllSequences("GAAAAATTTTCCCCCACCCTTTTCCCC", 10);
}
public static void printAllSequences(String DNASequence, int subSequenceSize){
for(int i=0; i<DNASequence.length() - subSequenceSize - 1; i++){
System.out.println(DNASequence.substring(i, i + subSequenceSize));
}
}
}
对象中,但是这需要对我正在处理的实际代码进行一些重构,我只想让它工作起来) 。
答案 0 :(得分:2)
如前所述,无法从对象文字中的嵌套对象引用父属性
但我建议使用模块化模式进行替代。
以下方法使用单个公共方法someObject
生成并返回对象run
。
“标记为私有对象的”主“对象,不能被某人修改或访问。 (现在很安全。)getMethods
方法'隐式'返回'main'对象的所有方法的列表(对象)。
var someObject = (function(){
var privateObj = {
method1: function() {
console.log("method 1");
},
method2: function() {
console.log("method 2");
},
method3: function() {
console.log("method 3");
},
getMethods : function(){
var self = this;
return {
one: self.method1,
two: self.method2,
three: self.method3
};
}
};
return {
run: function(str) {
console.log("running");
privateObj.getMethods()[str]();
}
};
}());
答案 1 :(得分:0)
我不认为这究竟是你在寻找什么,但我发现你可以使用getters来实现它。
例如:
var test = {
someProperty: true,
get somePropertyReference() {
return this.someProperty;
}
};
console.log(test.somePropertyReference);
&#13;
答案 2 :(得分:0)
您可以通过简单地重构一下并使用&#34; bind&#34;绑定&#34;这个&#34;在对象构造函数中应该引用它的函数。
function someObject() {
this.methods = {
method1: function() {
console.log(this);
console.log("method 1");
},
method2: this.method2.bind(this)
}
}
someObject.prototype.run = function(str) {
console.log("running");
this.methods[str]();
}
someObject.prototype.method2 = function() {
console.log(this);
console.log("method 2");
}
var a = new someObject();
a.run("method1");
a.run("method2");
&#13;