道招

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。
更新时间:
上一篇:下一篇:

相关文章

关注道招网公众帐号
友情链接
消息推送
道招网关注互联网,分享IT资讯,前沿科技、编程技术,是否允许文章更新后推送通知消息。
允许
不用了