从对象和函数(或称构造函数)两个维度理解js中的函数
2017-07-23 11:49
357 查看
/********** 把构造函数 Person 当做一个实例对象看待*********/ Person.speak = 'i am a person'; // 给实例对象添加属性 // 访问实例对象的属性 console.log(Person.speak); // i am a person /********** 把构造函数 Person 原原本本的当做构造函数看待*********/ var stud1 = new Person(); // 实例化 Person stud1.no = '201211513'; console.log(stud1.no); // 201211513
值得注意的是:
在谷歌和火狐下,
如果一个事物确实可以视为实例对象,
则其隐藏属性 __proto__ 是可以访问的(注意前后都是两个下划线哦),
如果一个事物确实可以视为构造函数,
则其是拥有属性 prototype的,并且可以进行访问
例如:
console.log({}.__proto__); // Object{,等15项...} console.log({}.prototype); // undefined function a(){ } console.log(a.__proto__); // function() -->此处把函数a 视为实例对象 console.log(a.prototype); // Object{,等1项...} -->此处把函数a 视为函数(或构造函数) // 以上结果可以体现出函数(或称构造函数)的双重性
相关文章推荐
- 如何让你快速轻松理解js的函数和构造函数的区别
- 一切皆对象之两个方法概括js,无函数签名(无多态),原型,闭包,封装,引用类型,继承……
- JS中面向对象的,对象理解、构造函数、原型、原型链
- js中构造函数只是函数,函数是对象,对象可以有属性和方法
- 关于js中,原型对象,原型链,构造函数,实例之间关系的理解与区别
- 第186天:js深入理解构造函数和原型对象
- 马上理解js中的函数为何是一个对象
- 判断两个对象是否相等的js函数
- js关于字面量与构造函数创建对象的几点理解
- JS的特殊函数:构造函数,直接创建对象
- 在立即执行函数内组合使用构造函数模式和原型模式创建对象,实现模块化开发(以daterangepicker.js为例)
- js对象工厂函数与构造函数
- 马上理解js中的函数为何是一个对象
- 轻松理解js的函数和构造函数的区别
- 关于js中对对象原型和构造函数的一些理解
- new一个对象,构造函数会执行可以理解,为什么除了构造函数以外的函数也可以执行?
- 判断两个对象是否相等的js函数
- Js 函数与对象的区别及原生链的理解
- 判断两个对象是否相等的js函数
- JS概念理解(一)——函数和对象、原型链、_proto_