js奇葩语法,arguments
发布于 10 年前 作者 kingapple 4483 次浏览 最后一次编辑是 8 年前

为何不在传参列表里显式表示参数? 赶脚用个arguments,容易出错:(

6 回复

个人感觉这是个很灵活的语法, 在常规用法中,完全可以无视arguments对象,通过传递参数即可完成大多数的操作。感觉这里完全可以和其他语言一样的用法

function Person(name, age, gender) {
    // .. do something
    // 感觉这里和其他语言不同的地方就是没办法检查参数的合法性
}

如果有特殊的需求,那么感觉arguments是非常灵活的,比如javascript没有方法重载的语法,那么就可以通过arguments对象来灵活的实现类似重载的方法。

function Person() {
    switch(arguments.length) {
        // case ... 虽然这个实例没有多大的意义 -.-
    }
}

另外还有好多时候我们可以通过arguments对象来判断传参数中是否有某个类型的参数,然后进行对应的操作。等等。 所以感觉arguments是个很灵活的东西, 正所谓奇葩的语法能解决更奇葩的需求 ~ 呵呵 ~ 纯属个人看法 ~

为何js解释器不支持OO特性呢:(

@kingapple 个人感觉每个语言都有自己不同的设计哲学,况且就针对OOP来说,从目前的情况来看支持和反对的人也不在少数,从我的角度来看,Java这种纯面向对象的语言用着也不是很舒服的,记得以前看过一篇挺有意思的文章Execution in the Kingdom of Nouns。所以现在有好多语言在面向对象上都不是那么严格,而且如果js真的有需要的话,也可以通过比如函数、原型链等来实现类似于面向对象。

@kenticny 模拟oo,赶脚写起来很蛋疼啊。。。

你可以选择不用啊

这个还真不行。。。

回到顶部