object
在js中object就是key: value的集合。
function对象也是object对象,但是他们都是以function关键字定义滴。
1
2
| Object //function Object() {};
Function //function Function() {};
|
每一个object里面都会有个constructor的key,value一般就是object的function引用。
例如:
1
2
| var o = new Obkect();
o.constructor // function Object() {}
|
function, new 与Object, Function
function与Function是不同的,function是关键字,而Function是对象。
1
2
3
| function s() { this.qq = 'ss' }
s //function s() { this.qq = 'ss' }
s.constructor // function Function() {}
|
所有的function对象都是由Function这个对象创建出来的。
1
2
| function s() { this.qq = 'ww' };
var o = new s();
|
与下面代码应该相等:
1
2
3
4
5
| function s() { this.qq = 'ww' }
var o = {};
s.call(0)
o.constructor = s
0.__proto__ = s.prototype
|
1
2
3
| function s() { this.qq = 'asd' };
s.call(s);
s.qq; // 'asd'
|
proto
object都有proto属性,其中保存着constructor的prototype
1
2
3
4
5
| //在chrome下
function s() {}
s.__proto__ // function Empty() {}
Function.prototype // function Empty() {}
Function.__proto__ // function Empty() {}
|
prototype
function对象的属性存放处
function, object
object拥有constructor,proto属性
function除了拥有上述属性,还拥有prototype属性,还拥有call,apply方法
后记
写的还真烂······