跳到主要内容
CNode

js奇葩语法,arguments

社区
Kkingapple发布于 12 年前最后回复 12 年前
652410

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

查看回复

回复 (6)

K
kingapple#612 年前
引用 dlutwuwei你可以选择不用啊

这个还真不行。。。

D
dlutwuwei#512 年前

你可以选择不用啊

K
kenticny#312 年前
引用 kenticny个人感觉这是个很灵活的语法, 在常规用法中,完全可以无视arguments对象,通过传递参数即可完成大多数的操作。感觉这里完全可以和其他语言一样的用法 如果有特殊的需求,那么感觉argumen...

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

K
kenticny#112 年前

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

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

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

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

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

参与回复

登录后即可参与回复。登录