身为函数语言的js,函数从何而来
Object.prototype
Object.prototype是js中诞生的第一个对象
Function.prototype
Function.prototype通过__proto__继承了Object.prototype,作为Js中诞生的第二个对象,该对象实现了js中的两种类型
js只有object number boolean function undefiend
Function和Object
很多人搞不清楚这两者的关系,确实这个关系比较绕。首先因为有了前面的两个prototype,这两哥们才关联起来了。
从上图可以看出Object和Function的原型链是一样的(why)
因为Object和Function是js中最重要的两个构造函数,Object既然是函数,继承Function.prototype就没什么奇怪的了
var obj = new Object();var obj = {}
这两个代码是一样的
创建一个空对象{}
将空对象的__proto__赋值Object.prototype
Object.apply({})
var fun = new Function();function fun(){};
同上
var fun = function(){};这个和前面两个也是等价的,但是有一个地方不太一样
new file stutent.js
`exports = module.exports = fun;
var fun = function (){
console.log('adf');
};`
在app.js中var student = require('./student'); 得到student为null
目前尚不知道原因
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。