宝哥软件园

JavaScript知识点总结(Xi)js中对象类的详细说明

编辑:宝哥软件园 来源:互联网 时间:2021-10-28

JavaScript中的Object object是JS中所有对象的基类,这意味着JS中的所有对象都是从Object Object派生出来的。对象主要用于将任意数据封装成对象形式。

1.对象类介绍。

对象类是所有JavaScript类的基类(父类),它提供了一种创建自定义对象的简单方法,不再需要程序员定义构造函数。

第二,对象类的主要属性。

1 .构造函数:对象的构造函数。

2.prototype:获取类的原型对象,它是静态的。

第三,Object类的主要方法。

1.hasOwnProperty(propertyName)

确定对象是否具有特定属性。属性必须在字符串中指定,例如obj.hasOwnProperty('name '),它返回一个布尔值。此方法无法检查此对象的原型链中是否存在此属性;该属性必须是对象本身的成员。

var str=警报(' str.hasownproperty (' split ')的结果是:' str . hasown property(' split ');//返回假警报(string . prototype . hasown property(“split ”)的结果是:“string . prototype . hasown property(‘split’)”);//返回真实运行结果:

hasOwnProperty的使用不限于此。在Jquery中,编写插件时,必不可少的一步就是初始化参数。最重要的方法之一是$。扩展()。他的原则是应用hasOwnProperty()方法;使用for in循环遍历对象成员中是否有同名的对象成员,如果有,用这个新的对象成员替换旧的对象成员。这样,我们可以通过修改方法中的参数变化来控制程序的进程,而对于那些没有变化的部分,我们仍然使用默认值进行控制。我们也可以自己简单地模拟这个扩展函数,如下所示。

函数extend (target,source){//target old source new for(var I in source){ if(target。hasown property(I)){ target[I]=source[I];} }返回目标;}var a={'first':' second':'lyl ',' third ' : ' bob ' };var b={ ' third ' : ' Leo ' };扩展(a,b);for(a中的var I){ alert(a[I]);//原来是bob,现在是Leo } 2 . is rototypeof(object)。

确定该对象是否是另一个对象的原型。

obj 1 . isprototypeof(obj 2);

Obj1是一个对象的实例;Obj2是其原型链将被检查的另一个对象。原型链可用于在同一对象类型的不同实例之间共享功能。如果obj2的原型链包含obj1,那么isPrototypeOf方法返回true。如果obj2不是一个对象,或者obj1没有出现在obj2的原型链中,则isPrototypeOf方法将返回false。

脚本类型=' text/JavaScript ' function foo(){ this . name=' foo ';}函数bar(){ } bar . prototype=new foo();var goo=new bar();alert(goo . name);//foo alert(bar . prototype . isprototypeof(goo));//真。如果在bar的原型链中有一个当前对象goo,则isPrototypeOf方法返回true/script 3 . properties enumerable(property name)。

利用这种方法,我们可以检测出这个对象的成员是否遍历,如果是遍历的,利用for in循环证明这个对象可以遍历。

格式如下:obj . propertysenumerable(property name)。

如果属性名存在于对象中,并且可以通过使用For…In循环来耗尽,则属性可数属性返回真。如果对象没有指定的属性或指定的属性不可枚举,则propertyIsEnumerable属性返回false。通常,预定义的属性不可枚举,而用户定义的属性总是可枚举的。

4.toString():返回对象对应的字符串。

5.valueOf():返回对象对应的原始类型。

以上五种方法都是在Object.prototype上定义的,ECMAScript中的所有对象都是从Object继承而来的,所以ECMAScript中的所有对象都有几种方法。

测试代码1:

var p=新对象();//通过目标直接创建对象//为p对象动态添加属性p。年龄=;p。名称='孤傲苍狼;//扩展目标类,为目标类添加一个显示方法对象。原型。show=function(){ alert(this .这个年龄。名称);}警报年龄;p . Show();文件。write(' pre ');文件。writeln(' p . constructor:' p . constructor ');//得到对象的构造函数文件。writeln('对象。原型:‘对象。原型’);//得到原型对象原型是静态属性,只能通过'类名。原型去访问文件。writeln(' p . is rototypeof(p):' p . is rototypeof(p));文件。writeln(' p . hasown属性( ' Age '):' p . hasown属性(' Age '));文件。writeln(' p . properties is numerable( ' Age '):' p . properties is numerable(' Age '));文件。writeln(' p . tostring():' p . tostring());文件。writeln('(的p .值):'的p .值());文件。write('/pre ');运行结果:

测试代码2:

var Car=function(){ };汽车。原型。hello=function(){ alert(' hello car ');};var car=新车();car.f=function() {alert('自定义方法');}文档。write(' pre ');文件。writeln('汽车。hasown属性( ' f ')的结果是:'汽车。hasown属性(' f ');//对,汽车对象有f方法文件。writeln('汽车。properties isenumerable( ' f ')的结果是:'汽车。properties isenumerable(' f ');//对,汽车对象有f方法,f方法是可以被枚举的文件。writeln('汽车。拥有自己的财产( ' hello ')汽车。hasown属性(' hello ');//false,因为汽车本身没有你好方法文件。writeln('汽车。properties isenumerable( ' hello ')的结果是:'汽车。property isenumerable(' hello ');//false,没有这个方法当然不能枚举文件。writeln('汽车。构造函数。原型。hasown属性( ' hello ')的结果是:'汽车。构造函数。原型。hasown属性(' hello ');//真的,车的类汽车的原型有你好方法文件。writeln('汽车。构造函数。原型。属性isenumerable( ' hello ')的结果是:'汽车。构造函数。原型。property isenumerable(' hello ');//真的,车的类的汽车的原型你好方法是可以被枚举的文件。writeln('汽车。原型。hasown属性( ' hello ')的结果是:'汽车。原型。hasown属性(' hello ');//真的,车的类汽车的原型有你好方法文件。writeln('汽车。原型。属性isenumerable( ' hello ')的结果是:'汽车。原型。property isenumerable(' hello ');文件。write('/pre ');运行结果:

以上所述是小编给大家介绍的Java脚本语言知识点总结(十一)之射流研究…中的目标类详解,希望对大家有所帮助

更多资讯
游戏推荐
更多+