美文网首页
关于JS的Object对象

关于JS的Object对象

作者: 10m每秒滑行 | 来源:发表于2018-02-27 18:06 被阅读0次

1.对象的创建

var object = new Object();
对象创建完成后可随时为对象添加property,function。如:

object.name = "fiona";
object.change = function () {
    console.log("change what?");
}

2.对象默认的属性和方法

对象创建后自带的属性,方法:
a> constructor 构造函数的指向,指向一个function。
b> hasOwnProperty(propertyName) 是否包含某个属性,入参为string
c> isPropertypeOf() 用于类型判断,是否为某种类型的实例,入参为object
d>prototype 指向原型对象,后面会详细说明
e> _proto_ 指向对象原型,可以理解为一个对象实例初始化时所用的模版

对比prototype 和_proto_:

首先prototype是对象类型的属性,不是实例对象的属性。_proto_是类型和实例都有的属性。
现在定义一个Dog类

function Dog () {
    this.name = "";
}

var dog = new Dog();

这个时候,dog初始化的时候,是有一个自定义属性,name为空串。如果有需求时每一个Dog实例产生时都有一些相同的模版值,除了在构造函数中声明,类似name属性。还可以为Dog声明一个对象模版,定义自定义属性。就可以使用prototype定义:

Dog.prototype = {
    sex : 'femail'
}

此时如果重新new一个dog1,dog1就会为Dog {name: "", sex: "femail"}两个属性,一个属性来自于构造函数,一个属性来自于构造模版。
打印dog1._proto结果为:{sex: "femail"},表示dog1的那些属性来自于Dog的模版。
此时中途改变一下dog1的sex 属性
dog1.sex = "mail"
打印dog1._proto
结果为:{sex: "mail"},所以实例对象的_proto_记录哪些属性来自于原型模版。

再定义一个foolDog继承Dog,并定义foolDog的原型模版

function foolDog() {
    Dog.call(this);
    this.type = "哈士奇"
}

foolDog.prototype = {
    color :  "whiteAndBlack",
    IQNumber : 10
}

var hashiqi = new foolDog()

此时hashiqi的属性有
{name: "", type: "哈士奇",color : "whiteAndBlack", IQNumber : 10 }
可以看出,foolDog继承了Dog的构造函数中的属性name,但没有继承prototype中定义的属性。因此prototype可以用于定义对象特有的原型属性,并且不被子对象继承。new出来的实例可以查看_proto_属性查看哪些属性来自于原型模版。

再对比由Dog类型new出的dog实例,和最初样例中的Object生成的实例o,dog也可以是 o.name = "",o.sex = 'femail" 表示的含义。个人感觉在js中类的概念是较弱的,都是为了便于区分理解,由object衍生出来的。

相关文章

  • 关于JS的Object对象

    1.对象的创建 var object = new Object();对象创建完成后可随时为对象添加property...

  • JavaScript中的Object对象

    JavaScript中的Object对象,是JS中所有对象的基类,也就是说JS中的所有对象都是由Object对象衍...

  • js 对象和jquery对象的比较

    1、js 对象和jquery对象的区别 jquery对象是js中的new Object()生成的普通对象 2、js...

  • jQuery前端框架--笔记

    1,JS对象和jQuery对象的区别 jQuery就是JS中的new Object生成的普通对象。 2,JS对象和...

  • JS内置对象

    JS内置对象分为两种: JS语言原生对象(语言级对象):String,Object,Function JS运行期的...

  • js与ES6对象常用方法区别

    js与ES6对象常用方法区别js中对象方法 Object.assign//用于克隆 Object.is()…用于判...

  • js object 对象

    在js中,object是最基本的数据类型,所有对象都是由object产生。那么object如此重要,它本身有哪些属...

  • JS Object对象

    概述 JavaScript 原生提供Object对象。JavaScript 的所有其他对象都继承自Object对象...

  • JS对象 & JSON & JS数组操作

    JS对象 & JSON & JS数组操作 JSON 格式(JavaScript Object Notation 的...

  • JS 对象

    JS对象 JS对象的意义和声明 在JS中,对象(OBJECT)是JS语言的核心概念,也是最重要的数据类型。在JS中...

网友评论

      本文标题:关于JS的Object对象

      本文链接:https://www.haomeiwen.com/subject/uyjmxftx.html