javascript - 写js函数时候碰到了错误。和参数有关系的,搞不明白。
PHPz
PHPz 2017-04-11 11:11:55
[JavaScript讨论组]

情况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 {}

这两种情况为啥不是都能用啊?感觉功能相似。
到底哪里错了啊?

PHPz
PHPz

学习是最好的投资!

全部回复(3)
怪我咯
 var options = options || {};
PHP中文网

options || (options = {})
或者
options = options || {}
或者

if(!options){
    options = {};
}
伊谢尔伦

提示已经说的非常清楚了,等号左边的值无效。
实际上情况1的代码等价于:

(options || options)={};

等号左边的运算结果没有对象空间,因此其不可写,自然无法赋值喽。
正确的写法应该手动指定运算结果存储位置:

options=options||{};
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号