浅谈Javascript中Object与Function对象
JavaScript中的面向对象编程是基于原型的。每个对象都拥有一个属于自己的原型链,这是对象的一个关键特性。当我们谈论Object和Function时,可能会遇到一些令人困惑的情况,比如Object instanceof Function和Function instanceof Object都会返回true。为了深入理解这一现象,我们来一下对象的实例。
1. Object对象
每一个对象都有一个原型,这是对象的一个内部属性,称为prototype。这个原型本身也是一个对象。当我们为Object的原型添加属性时,这些属性会被所有本地对象继承。
让我们通过一段代码来展示这一特性:
```javascript
Object.prototype.num = 10;
alert("添加原型对象属性:" + Object.num); // 输出:添加原型对象属性:10
Object.num = 20;
alert("添加对象属性:" + Object.num); // 输出:添加对象属性:20
```
关于原型链,当为Object的原型添加属性a时,所有Object的实例都会继承这个属性。无论是Object的实例还是String的实例,都可以访问到属性a。
2. Function对象
当函数被执行时,系统会自动为该函数创建一个特殊的对象——arguments。这个arguments对象用于管理函数的实际参数。
(1)caller属性
caller属性显示了函数的调用者。在一个函数内部,可以通过this.caller来访问调用该函数的那个函数。例如:
```javascript
var a = new Function("alert('a:" + a.caller)"); // a的caller是全局对象(在严格模式下是undefined)
function b() { a(); alert('b:' + b.caller); } // b的caller是全局对象或undefined(取决于是否在严格模式下)
b(); // 执行结果会提示b的caller为空或undefined,而a的caller是b的函数体代码本身。这是因为a作为匿名函数被调用时并没有明确的调用者。狼蚁网站SEO优化的例子中的调用关系与此类似。
```
(2)length属性
length是arguments对象的属性,表示函数被调用时传递的参数个数。可以通过数组的方式访问某个实际参数。例如:
```javascript
编程语言
- 浅谈Javascript中Object与Function对象
- 在JSP中访问MS SQL Server数据库
- 纯JS代码实现一键分享功能
- vue 移动端注入骨架屏的配置方法
- SQL Server 2008 R2-error 26 开启远程连接详解
- Vue引入jquery实现平滑滚动到指定位置
- asp下调试程序的debug类
- ThinkPHP的Widget扩展实例
- C#各种集合操作的性能总结
- 修改月光博客网站中PHP常用正则表达式中出现的
- Redis使用Eval多个键值自增的操作实例
- symfony2.4的twig中date用法分析
- PHP copy函数使用案例代码解析
- jquery中的ajax同步和异步详解
- JS Testing Properties 判断属性是否在对象里的方法
- CORBA对象生命周期之实现和内存管理