jav*_*ttt 8 javascript onclick
我有一个按钮
var startButton = $('#startButton').get(0);
Run Code Online (Sandbox Code Playgroud)
我将vanilla javascript onclick方法附加到按钮上,然后单击调用start.
startButton.onclick = start;
Run Code Online (Sandbox Code Playgroud)
我想使用函数表达式,但(由于提升?)这不会调用start
var start = function() {
console.log('requesting local stream');
startButton.disabled = true;
getUserMedia(constraints, gotStreamSuccess, errorCallback);
}
Run Code Online (Sandbox Code Playgroud)
声明的函数可以
function start() {
console.log('requesting local stream');
startButton.disabled = true;
getUserMedia(constraints, gotStreamSuccess, errorCallback);
}
Run Code Online (Sandbox Code Playgroud)
我该怎么写
startButton.onclick = start;
Run Code Online (Sandbox Code Playgroud)
这样它可以用于函数表达式吗?
谢谢
我同意你的观点,这是一个提升问题,你必须在设置之前查看你的代码以适当地提升它startButton.onclick = start;。
以下是MDN关于语法的说明:

它特别提到函数可以被声明或被表达。对我来说,这又导致了提升,因为函数声明会自动提升。
MDN使用函数声明。我更改了JSFiddleonclick中的示例以使用函数表达式,正如您想要使用的那样。通过正确的提升,当您单击按钮时它会调用正确的方法。
| 归档时间: |
|
| 查看次数: |
966 次 |
| 最近记录: |