我正在读这个链接JavaScript_syntax
这似乎是循环的 - 每个函数都是一个Object,每个Object本身都是一个函数.哪个是原子的?有人能以更好的方式解释吗?
Aar*_*lla 55
任何非原始类型(undefined,null,number,string,boolean)都是JavaScript中的对象(或实例).这意味着function继承自object.
对象实例可以包含更多可以是函数的实例.这就是我们所说的"方法"(因为它有一个自动this变量).
由于您无法"调用"每个Object实例,因此并非每个对象都是函数.
Roh*_*hit 16
我认为这个概念经常被误解.
可视化JS类型关系的实用程序http://jstype.herokuapp.com/#/home
var foo = { };
var foo = [1, 2, 3];
var foo = function abc() { return "hello world"; };
var foo = new Number(30);
var foo = new String("Hello World");
var foo = new Boolean(true);
var foo = new RegExp(/[foo]+/);
// All 'foo` are object. Run Code Online (Sandbox Code Playgroud)
所有原始类型都有相应的构造函数 wiz.Array, Number, String, Boolean, RegExp.由于所有函数都是对象,因此它们也是对象.所以我们可以称它们为构造函数对象.
大多数非原始类型具有prototype所有继承的东西都存在的属性.数学没有原型.
所有对象都继承自Object.prototype继承自的对象null.
object <- Object.prototype <- null
所有本机函数都继承自Function.prototype,该函数继承自Object.prototype.
function <- Function.prototype <- Object.prototype <- null
数组继承自的Array.prototype继承Object.prototype.
array <- Array.prototype <- Object.prototype <- null
必须阅读MDN:继承和原型链
混淆Stackoverflow:JavaScript中的原型
Stack Overflow:函数原型解释
也是Function一个属性object.
这意味着JavaScript中的所有函数始终绑定到对象.如果你没有指定一个对象绑定一个函数,它绑定到window对象(也称为全局函数)
..fredrik
| 归档时间: |
|
| 查看次数: |
20209 次 |
| 最近记录: |