对象对象学习笔记

构造函数

新对象()

新对象(值)



参数

价值

一个可选的参数,这是原始值(即数字、布尔值或字符串)被转换为数字对象,布尔对象,或一个字符串对象,Javascript 1.1以前的版本,ECMAscript Vl不支持的对象。



返回值

如果value参数没有传递给构造函数,然后返回一个新创建的对象实例。如果原始值参数指定的构造函数将创建并返回原来的值,即包装对象,数字对象,布尔对象,或字符串对象,当新的经营者是不是使用对象()构造函数称为一个函数,它的行为是一样,当新的算子。

属性

构造函数

对Javascript函数的引用,它是对象的构造函数。

方法

1.hasownproperty()

检查对象是否具有本地定义(非继承)和特定名称属性。

复制代码代码如下所示:

U3000

新对象();

o.name =汤姆;

警报(o.hasownproperty(名称)); / /真的

警报(o.hasownproperty(年龄)); / /假





2.isprototypeof()

语法

object.isprototypeof(O)

参数

o

任何对象。



返回值

如果对象是O的原型,则返回true。如果O不是一个对象,或者对象不是O的原型,则返回false。

描述

Javascript对象继承了原型对象的属性,对象的原型的原型,用于创建和初始化对象的构造函数引用,isprototypeof()方法提供了一种方法来确定一个对象是否是另一个对象的原型。这种方法可以用来确定对象的类。

样品

复制代码代码如下所示:

var =新的(对象);创建对象

object.prototype.isprototypeof(O)真: / O是一个对象

Function.prototype.isPrototypeOf(o.tostring / /);真的是一个函数的方法

Array.prototype.isPrototypeOf({1,2,3}; / /真实):{1,2,3}是数组

下面是测试同一种方法的另一种方法的实现

(o.constructor = =对象); / /真实:o创建对象(构造函数)

(o.tostring.constructor = =功能); / /真实:o.tostring是函数

原型是原型对象中的对象本身,下面的调用返回true

/ /功能后,function.prototype和object.prototyp性质。

Object.prototype.isPrototypeOf(函数原型);



3.proertyisenumerable()



语法

object.propertyisenumerable(propname)



参数

propname

包含对象原型名称的字符串。

返回值

如果对象具有非继承的属性名和属性propname,枚举(即为 /环可枚举),则返回true。

描述

一 /语句可用于遍历一个对象可以枚举的属性。但不是所有的对象属性的枚举,通过Javascript代码添加到对象属性的枚举,而预定义属性的内部对象(如法)通常是不可数。(propertylsenumerable)方法提供了一种区分可枚举属性和不可枚举属性的方法。但要注意,ECMAscript标准规定,propertyisenumerable()方法没有检测到原型链,这意味着它只适用于物体的局部特征,而不能检测出的继承属性的枚举属性。

样品

复制代码代码如下所示:

var =新的(对象);创建对象

OX = 3.14; / /定义一个属性

o.propertyisenumerable(X); / /真实属性X是局部和枚举。

o.propertyisenumerable(Y); / /错误:没有属性Y

o.propertyisenumerable(规则); / /假:tostrlng属性继承

object.prototype.propertyisenumerable(规则); / /假:。



缺陷

当标准的限制propertylsenumerable()方法只能检测非继承的属性,这显然是错误的。Internet Explorer 5.5标准实现此方法,propertyisenumerable()的实现方法nestacpe 6认为原型链。虽然这种方法是可取的,它与标准的冲突,所以Netscape 6.1修改它,它与IE 5.5.this方法不是很有用因为这错误的标准。

复制代码代码如下所示:



var obj =新的对象();

obj.title = 'AAA';

obj.funb =功能(A,B)

{

警报(A + B);

}

警报(obj。标题);

Obj.funb(1,2);





这里的方法

******************************

复制代码代码如下所示:



函数对象(值,A,B){

this.title =价值;

this.funb =函数(){

这个;

这个;

警报(A + B);

}

}

var obj =新的对象(AAA

警报(obj。标题);

Obj.funb();

在这里添加对象的新方法

object.prototype.name =123456;

警报(对象名称);





这是另一种方式。