Javascript中用于属性初始化的简短if语句

Shorthand if statement for property initialization in Javascript

本文关键字:if 语句 初始化 用于 属性 Javascript      更新时间:2023-09-26

为了使我的代码更简洁,我在javascript文件中做了以下操作:

var _weight;
function getWeight(){
    _weight || InitializeWeight();
    // do some stuff
    return _weight;
}
function InitializeWeight(){
    _weight = 3;
}

JSHint对以下简短语句抛出错误"_weight || InitializeWeight()":

期望一个赋值或函数调用,却看到一个表达式。

检查它是否未定义,调用这个方法

这真的不对吗?

我如何写这个语句而不让JSHint向我抛出?

您可以使用expr选项:

/*jshint expr: true */
var _weight;
function getWeight(){
    _weight || InitializeWeight();
    // do some stuff
    return _weight;
}
function InitializeWeight(){
    _weight = 3;
}