情况1的代码:
var s =function(options){
options || options = {}
}
s();
情况1的结果:
Uncaught ReferenceError: Invalid left-hand side in assignment
情况2的代码:
var s = function(options){
if(!options){
options = {};
}
console.log(options);
}
s();
情况2的结果:
Object {}
这两种情况为啥不是都能用啊?感觉功能相似。
到底哪里错了啊?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
options || (options = {})或者
options = options || {}或者
提示已经说的非常清楚了,等号左边的值无效。
实际上情况1的代码等价于:
等号左边的运算结果没有对象空间,因此其不可写,自然无法赋值喽。
正确的写法应该手动指定运算结果存储位置: