如果我想要执行一个函数,我更喜欢使用内联js:
<p id="element" onclick="doSomething();">Click me</p>
Run Code Online (Sandbox Code Playgroud)
因为它更容易调试.
但是,我听到人们说不使用内联js,并做:
document.getElementById('element').onclick = doSomething;
Run Code Online (Sandbox Code Playgroud)
为什么推荐使用js事件监听器?
我正在尝试找出创建对象新实例的最有效方法.
当我开始时,我使用了这样的东西:
var Foo = function(a, b, c)
{
this.a = a;
this.b = b;
this.c = c;
}
Foo.prototype.func = function()
{
// Do stuff;
}
var bar = new Foo(1, 2, 3);
bar.func();
Run Code Online (Sandbox Code Playgroud)
之后我听说跳过原型会更好,因为新的原型会耗尽不必要的内存,得到这样的东西:
var Foo = function(a, b, c)
{
return {
a:a,
b:b,
c:c,
func:function()
{
// Do stuff;
}
}
}
var bar = Foo(1, 2, 3);
bar.func();
Run Code Online (Sandbox Code Playgroud)
但是,现在我遇到了在调用Foo的多个实例时多次创建相同func的问题...那么怎么样...
var Foo = {
a:null,
b:null,
c:null,
func: function()
{
// Do stuff;
}
}
function …Run Code Online (Sandbox Code Playgroud) 我试图让一个物体围绕另一个物体.我想,并不太难.但事实证明这个圆圈是螺旋式的......我可能使用了错误的公式,但我不确定应该选择哪一个......
var dx = this.x - this.parent.x,
dy = this.y - this.parent.y,
r = Math.atan2(dy, dx);
this.x = Math.sin(r) * this.speed + this.x;
this.y = (Math.cos(r) * this.speed * -1) + this.y;
Run Code Online (Sandbox Code Playgroud)
当您执行此代码时,它似乎工作.对象围绕其父对象以弧形移动的每个帧.
然而,弧越来越大,越来越远.
我犯了什么错误?