解析Javascript中的未可见数据类型

js提供了一些内置对象,功能,和我们的程序的构造函数,如数学,parseInt,对象,数组,等等。这些都是可见的,编程时可以使用。例如,我可以新的目标或新的阵列。

有些是不可见的,这些物体只能在特殊情况下由发动机提供。

一、参数类型
参数类型不能由程序员手工创建,也就是说,不能使用新的参数(),它只有一个对象、参数。
复制代码代码如下所示:
函数(){
console.log(参数{ 0 }) / 1
console.log(参数。长度)/ 3
}
函数(1, 2, 3)

争论的对象在函数调用时创建,是可见的,只能用在函数内,你可以看到,争论很像数组,可以索引采取的元素,也有长度属性,但它不是数组,它没有阵列,如推、流行,等等。论据是ES5 10.6定义。

二,绑定返回的函数非常特殊。
绑定是一个function.prototype ES5增添了新方法,即直接在功能,如呼叫/ apply.it返回一个函数,指定上下文参数。
复制代码代码如下所示:
函数(年龄){
console.log('name:+ this.name +,职业:+年龄)
}
无功的人= {姓名:约翰麦卡锡}
VaR F1 = func.bind(人、计算机科学家)
F1(约翰职业生涯):姓名:麦卡锡,计算机科学家

您可以看到,返回的函数f1使用圆括号执行调用,就像普通函数一样。
复制代码代码如下所示:
函数(年龄){
console.log('name:+ this.name +,职业:+年龄)
}
无功的人= {姓名:约翰麦卡锡}
VaR F1 = func.bind(人、计算机科学家)
console.log(F1。原型) / /未定义

与上面的代码相比,最后一句是不同的,不是F1的执行(),但打印出来的f1.prototype,并发现是未定义的。

奇怪吗并不是每个函数都有一个原型属性来实现原型继承,事实上,绑定返回的函数更为特殊,没有原型,这个特殊的函数是由js引擎创建的,而客户端程序员不能直接通过函数声明或函数来获取它。

这一点在规范ES5 15.3.4.5清晰的提示