第三章 Object()

    xiaoxiao2022-06-29  61

    3.1 Object()对象概要

    可以将Object()构造函数想成是饼干模具,该饼干模具用来创建没有预定义属性或方法的空对象(当然除了那些继承自原型链的属性或方法。)

    3.2 Object()参数

    Object()构造函数采用一个可选参数,该参数是要创建的值。如果不提供任何参数,那么将有哟个null或undefined值。 如果将一个null和undefined之外的值传递给Object()构造函数,那么传入的值将被创建为一个对象。所以从理论上说,我们可以使用Object()构造函数来创建其它拥有构造函数的原生对象。

    console.log(new Object()); console.log(new Object(null)); console.log(new Object(undefined)); console.log(new Object('liuyang')); console.log(new Object(function () {}));

    3.3 Object()属性和方法

    Object()对象具有以下属性(不包含继承的属性和方法)。 属性 prototype原型

    3,4 Object()对象实例属性和方法 实例属性 constructor 构造函数 实例方法 hasOwnProperty() isPrototypeOf() propertyIsEnumerable() toLocaleString() toString() valueOf() !!原型链以Object.prototype结尾,因此,Object()的所有属性和方法被所有的JavaScript对象继承。

    var liuy = new Object(); liuy.name = 'LiuYang'; liuy.getName = function(){ return this.name; } console.log(liuy.getName()); console.log(liuy.prototype); console.log(liuy.toString()); console.log(liuy.constructor);

    3.5 使用对象字面量创建Object()对象

    创建“对象字面量”需要使用花括号包含一个或多个属性。

    var liuy = { name: 'LiuYang', age: 23, sex: 'male', 'getInfo': function(){return liuy.name+this.age+this.sex;} }; console.log(liuy); console.log(liuy.getInfo());

    首先,它是一条语句,结尾要加分号;其次,最后一个属性后面没有逗号,最后,每个属性后面跟的是逗号,不是分号(因为不是语句)。

    没必要将属性指定为字符串,除非属性名是如下几种情况。 是保留关键字之一。(在编辑器中会变色的标识符(属性)) 包含空格或特殊字符(不在标识符规定内的字符) 以数字开始。 嗯,,就是不符合标识符命名规范的. 重要的事情再说一遍:对象的最后一个属性后面不该跟逗号。

    3.6 所有你对象都继承自Object.prototype

    Object()构造函数在JavaScript中是特殊的,因为它的prototype属性在原型链中是最后一个。 所以所有的对象都会继承Object.prototype的属性。

    Object.prototype.foo = 'foo'; var myString = 'bar'; console.log(myString.foo);

    !!!添加至Object.prototype的任何内容都将出现在for in循环和原型链中。

    转载请注明原文地址: https://ju.6miu.com/read-1125088.html

    最新回复(0)