本文出至(讨论): http://jsvm.org/forums/1947/ShowPost.aspx#1947
js 中 Object 和 Function 的关系是微妙的,他们互为对方的一个“实例”。
Function instanceof Object 和 Object instanceof Function 都是 true
1。我们可以认为 Object 是一个特殊的“类”,而这里的“类”即:function
于是便可以理解为: Object = function () {} 或 Object = new Function(); 即: Object 是 Function 的一个实例,所以,Object 原型链中便包含 Function.prototype,得出: Function.prototype.isPrototypeOf(Object) 为 true
2。同时,js中,所有对象(不包括js语言外部对象)都可视为是 Object 的一个实例, Function 不例外,Function.prototype 亦不例外,于是有Function = new Object(); Function.prototype = new Object(), 于是 Object.prototype.isPrototypeOf(Function) 和 Object.prototype.isPrototypeOf(Function.prototype) 都为 true 了
3。补充:Function 本身也是一个“类”,然而,所有“类”都是Funciton的实例,于是 Function instanceof Function; 为true。同时,所有对象都是 Object 类的实例,Object 本身也是一个对象,所有又有 Object instanceof Object 也为 true。另外,还可以认为 Funciton 类型是 Object 类型的一个“派生类”,class Function 继承了class Object ,是 class Object 的一个“子类”。
更多内容请查看:http://jsvm.org/forums/1947/ShowPost.aspx#1947
分享到:
相关推荐
这两个属性都是Object.prototype所提供:Object.prototype.hasOwnProperty()和Object.prototype.isPropertyOf() 先讲解hasOwnProperty()方法和使用。在讲解isPropertyOf()方法和使用 看懂这些至少要懂原型链 一、...
Function instanceof Object 和 ... 即:Object 是 Function 的一个实例,所以,Object 原型链中便包含 Function.prototype,得出: Function.prototype.isPrototypeOf(Object) 为 true 2。同时,js中,所有对象(不包
var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); // Not own constructor property must be Object if (obj.constructor &&...
String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { if (!RegExp.prototype.isPrototypeOf(reallyDo)) { return this.replace(new RegExp(reallyDo, (ignoreCase ? “gi”: “g...
Function Arguments: The Arguments Object Section 7.5. Function Properties and Methods Chapter 8. Objects Section 8.1. Objects and Properties Section 8.2. Constructors Section 8.3. Methods...
isPrototypeOf:是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。 代码如下:function siteAdmin(nickName,siteName){ this.nickName=nickName; this.siteName=siteName;}...
Object . getOwnPropertyNames ( Symbol . prototype ) ; /* [ 'constructor', 'toString', 'valueOf' ] */ allKeys ( Symbol . prototype ) ; /* Set { 'constructor', 'toString', 'valueOf', '...
如果 object2 的 原型链中包含object1,那么JavaScript中isPrototypeOf函数方法返回 true。 原型链可以用来在同一个对象类型的不同实例之间共享功能。 如果 object2 不是一个对象或者 object1 没有出现在 object2 中...
JS中所有的东西都由Object衍生而来, 即所有东西原型链的终点指向Object.prototype // [constructor, toString, toLocaleString, valueOf, hasOwnProperty, isPrototypeOf, // propertyIsEnumerable, __...
JavaScript isPrototypeOf和hasOwnProperty的使用技巧,需要的朋友的朋友可以参考下。
ECMAScript中的对象其实就是一组数据和功能的集合。 ECMAScript中Object是所有对象的基础。 理解:Object类型是所有它的实例的基础,...3.isPrototypeOf(object):用于检查传入的对象是否是另一个对象的原型 4.toLoca
2.8 引用类型 1、Object类 ECMAScript中的所有类都是由Object类继承而来。...必须用字符串指定该属性值 IsPrototypeOf(object):判断该对象是否为另一个对象的原型。 PropertyIsEnumerable(property)
主要介绍了JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()的相关资料,需要的朋友可以参考下
for 语句 只要指定的条件为 true,就一直执行语句块。 for...in 语句t 对应于对象或数组中的每个元素执行一个或多个语句。 fromCharCode 方法 返回 Unicode 字符值的字符串。 Function 对象 创建一个新的函数。 ...
for 语句 只要指定的条件为 true,就一直执行语句块。 for...in 语句t 对应于对象或数组中的每个元素执行一个或多个语句。 fromCharCode 方法 返回 Unicode 字符值的字符串。 Function 对象 创建一个新的函数。 ...
for 语句 只要指定的条件为 true,就一直执行语句块。 for...in 语句t 对应于对象或数组中的每个元素执行一个或多个语句。 fromCharCode 方法 返回 Unicode 字符值的字符串。 Function 对象 创建一个新的函数。 ...
JavaScript借鉴了许多语言的特点...诚然,我们可以为一个对象设置prototype property,但这又怎么样呢,这只是表象;后面暗藏杀机。 好,那我可以用isPrototypeOf()来检验某个对象是不是另一个对象的原型;然而这也是