道招

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。
更新时间:
上一篇:使用discord或者slack的api实现自己的翻译bot下一篇:String.prototype.match到底怎么用

相关文章

将object型转换为数组array型

object貌似是最大的类型了,在使用数据的时候有的数据的键和值得形式基本上就是数组了,但是它却不是array类型,可以这样的函数转换一下就行了。 function object_to_arr 阅读更多…

Javascript原生函数作为构造函数

关于数组(array)、对象(object)、函数(function)和正则表达式,我们通常喜欢以常量的形式来创建它们。实际上,使用常量和使用构造函数的效果是一样的(创建的值都是通过封装对象来包装)。 阅读更多…

关注道招网公众帐号
道招开发者二群