Javascript小tips之Object
如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!
Javascript小tips之Object
Object.create和new xxx()的区别
语法
Object.create(proto, [propertiesObject])
创建一个新对象,使用现有的对象来提供新创建的对象的__proto__
。
参数
proto新创建对象的原型对象。
propertiesObject可选。如果没有指定为 undefined,则是要添加到新创建对象的可枚举属性(即其自身定义的属性,而不是其原型链上的枚举属性)对象的属性描述符以及相应的属性名称。这些属性对应Object.defineProperties()的第二个参数。
返回值
一个新对象,带着指定的原型对象和属性。例外
如果propertiesObject参数不是 null 或一个对象,则抛出一个 TypeError 异常。var F = function () {};
F.prototype = o;
return new F();
};
new Base()
new 构造函数() 实际上执行的是:var obj = new Object();
obj.[[Prototype]] = Base.prototype;
Base.call(obj)
原型链的理解
在JavaScript中,一共有两种类型的值,原始值和对象值.每个对象都有一个内部属性[[prototype]],我们通常称之为原型.原型的值可以是一个对象,也可以是null.如果它的值是一个对象,则这个对象也一定有自己的原型.这样就形成了一条线性的链,我们称之为原型链。访问一个对象的原型可以使用ES5中的Object.getPrototypeOf方法,或者ES6中的proto属性. 原型链的作用是用来实现继承,比如我们新建一个数组,数组的方法就是从数组的原型上继承而来的.
rang instanceof == Range
语法
object instanceof constructor
参数
object要检测的对象.
constructor某个构造函数
instanceof
运算符并不会检查rang是否是由Range()构造函数初始化而来,而会检查rang是否继承自Range.prototype。- 分类:
- Web前端
更新时间:
相关文章
Javascript原生函数作为构造函数
关于数组(array)、对象(object)、函数(function)和正则表达式,我们通常喜欢以常量的形式来创建它们。实际上,使用常量和使用构造函数的效果是一样的(创建的值都是通过封装对象来包装)。 阅读更多…
将object型转换为数组array型
object貌似是最大的类型了,在使用数据的时候有的数据的键和值得形式基本上就是数组了,但是它却不是array类型,可以这样的函数转换一下就行了。 function object_to_arr 阅读更多…