是否有可能在JavaScript

时间:2017-05-26 10:56:03

标签: javascript

所以, 我知道可以覆盖alert()confirm() ...等功能,如下所示:

window.alert = function(x){
// do something
}

我的问题是,是否可以对if语句执行相同的操作?

window.if = function(x){
// etc
}

谢谢!

2 个答案:

答案 0 :(得分:4)

if不是一个功能。它是一种内置的语言陈述,所以不,它不能简单地被覆盖。

无论如何,改变if的含义在99.9999%的情况下都是不可取的。您可能会破坏可能在您的网站上使用的所有其他代码。

如果你想创建自己的版本,那就不那么困难了:

function myIf(predF, thenF, elseF) {
    if (predF()) {
        thenF()
    } else {
        elseF()
    }
}

然后使用它:

myIf(() => 5 < 10,
    () => console.log("It works!"),
    () => console.log("It's broken!")
)

然后对该功能进行任何更改。

(应该注意的是,使用上述功能可能是一个糟糕的主意。它仅仅是一个例子)。

答案 1 :(得分:0)

If是javascript语言中的保留关键字,它不是函数。

关键字就像您不会改变某种语言字母含义的alphabets一样。

有关其他保留关键字的详细信息,请点击here