var arr = [] // var arr = new Array() var obj = {} // var obj = new Object() function fn() {} // var fn = Function() {} 隐式原型:(所有对象都有隐式原型) 显示原型:(函数才有显示原型) 隐式原型指向其构造函数的显示原型 hasOwnProperty(对象中是否存在某个属性) Object.keys(obj)获取对象的key存入一个数组 Object.values(obj)获取…
原型链是js面向对象的基础,非常重要. 一,创建对象的几种方法: 1,字面量 var o1 = { name:'o1' }; 2,构造函数 var M = function(name){ this.name = name; }; var o2 = new M('o2'); var a = {} 其实是 var a = new Object()的语法糖,推荐使用前者 var a = [] 其实是 var a = new Array()的语法糖,推荐使用前者 function Foo(){} 其实是…
注意:本文不是javascript基础教程,如果你没有接触过原型的基本知识,应该先去了解一下,推荐看<javascript高级程序设计(第三版)>第6章:面向对象的程序设计. 上节已经提到,每个函数function都有一个prototype,即原型.这里再加一句话——每个对象都有一个__proto__,可成为隐式原型. 这个__proto__是一个隐藏的属性,javascript不希望开发者用到这个属性值,有的低版本浏览器甚至不支持这个属性值.所以你在Visual Studio 2012这样很…
原型的含义是指:如果构造器有个原型对象A,则由该构造器创建的实例(Object Instance)都必然复制于A.““在JavaScript中,对象实例(Object Instance)并没有原型,而构造器(Constructor)有原型,属性'<构造器>.prototype'指向原型.对象只有“构造自某个原型”的问题,并不存在“持有(或拥有)某个原型”的问题. 一个自定义的函数,假设为 function Person(){ } 当使用 new 创建对象时,创建的对象实际上是对Person原型…