将代码转换为JS对象文字模式
Convert code to JS Object Literal Pattern
我想开始编写更好的代码,并且我已经开始理解将与特定功能部分相关的所有内容放在对象中是一个好主意。
编辑:我试着在@SoftwareEngineer171的回答中接受这个概念。现在我有了这个:var app = {
audioCtx : new(window.AudioContext || window.webkitAudioContext)(),
init : function () {
oscillator = app.audioCtx.createOscillator();
oscillator.type = 'square';
oscillator.frequency.value = 3000; // value in hertz
oscillator.start();
}
} // app object close
app.init();
但是它不起作用。有人能解释一下原因吗?
我想把这段代码用作应用程序的一部分,但是放在对象文字中:
var context = new AudioContext(),
gainNode = context.createGain(),
oscillator = context.createOscillator();
gainNode.connect(context.destination);
oscillator.frequency.value = 440;
oscillator.connect(gainNode);
oscillator.start();
然而,当我尝试时,我遇到了这里提到的那种问题。
我希望代码像这样开始:
var app = {
context : new AudioContext(),
...
}
如有任何帮助,不胜感激。
您要做的不是特定的功能,但是您可以通过几种方式来实现。例如,如果您想编写以下对象
var obj = {
a: 5,
b: 7,
c: a + b
};
将抛出一个ReferenceError
。为了避免这种情况,可以将语法重写为
var obj = {
a: 5,
b: 7,
init(){
this.c = this.a + this.b;
return this;
}
}.init();
也可以使用class
var obj = new class{
constructor(){
this.a = 5;
this.b = 7;
this.c = this.a + this.b;
}
}();
或者甚至使用构造函数
var obj = new function(){
this.a = 5;
this.b = 7;
this.c = this.a + this.b;
}();
编辑
在您的例子中,音频上下文脚本看起来像这样(参见JSFiddle):
var app = {
context: new (window.AudioContext || window.webkitAudioContext)(),
gainNode: null,
oscillator: null,
init(){
this.gainNode = this.context.createGain();
this.oscillator = this.context.createOscillator();
this.gainNode.connect(this.context.destination);
this.oscillator.frequency.value = 440;
this.oscillator.connect(this.gainNode);
this.oscillator.start();
}
};
app.init();
相关文章:
- 如何计算对象文字中的键
- 对象文字方法上的Javascript绑定不起作用
- 可以使用“;创建“;作为JavaScript对象文字中的属性名称
- 这两种不同的创建对象文字的方法有什么区别
- Javascript对象文字,POST问题
- 为什么可以'我们在函数体中为函数对象添加属性,就像在javascript中为对象文字添加属性一样
- 如何使用'这个“;对象文字中的关键字
- JS对象文字中的方法和子方法
- 向JavaScript对象文字添加数据
- Javascript对象文字,如何使用“this”来引用对象中的变量
- 如何将xml文件转换为javascript中的对象文字
- 什么's对象文字中带引号和不带引号的键之间的区别
- 使用窗口对象练习我的对象文字函数
- 对象文字数据表中的 Google 可视化样式角色
- 如何创建作用域的动态、基于实例的对象文字
- Javascript将字符串中的对象转换为对象文字
- 我需要一些帮助来理解JavaScript中的对象文字函数
- 为什么动画设置加载在TweenMax中的两个单独的对象文字中
- 对象文字语法怪异
- 对象文字中的类