当前位置:首页 > 科技 > 正文

prototype用法(prototype动词怎么用)

prototype用法(prototype动词怎么用)

大家好,关于prototype用法很多朋友都还不太明白,今天小编就来为大家分享关于prototype动词怎么用的知识,希望对各位有所帮助!jQuery中$.each( ...

大家好,关于prototype用法很多朋友都还不太明白,今天小编就来为大家分享关于prototype动词怎么用的知识,希望对各位有所帮助!

jQuery中$.each()函数的用法引申实例

jQuery中的$.each()函数比forEach更加强大,可以用来遍历JavaScript中的任意集合,借来下来我们会举几个jQuery中$.each()函数的用法引申实例,首先先来回顾一下遍历用法的基础:

$.each(collection,callback(indexInArray,valueOfElement))

值得一提的是,forEach可以很方便的遍历数组和NodeList,jQuery中的jQuery对象本身已经部署了这类遍历方法,而在原生JavaScript中则可以使用forEach方法,但是IE并不支持,因此我们可以手动把forEach方法部署到数组和NodeList中:

if(!Array.prototype.forEach){

Array.prototype.forEach=function(fn,scope){

for(vari=0,len=this.length;i<len;++i){

fn.call(scope,this[i],i,this);

}

}

}

//部署完毕后IE也可以使用forEach了

document.getElementsByTagName('p').forEach(function(e){

e.className='inner';

});

而jQuery中的$.each()函数则更加强大。$.each()函数和$(selector).each()不一样。$.each()函数可以用来遍历任何一个集合,不管是一个JavaScript对象或者是一个数组,如果是一个数组的话,回调函数每次传递一个数组的下标和这个下标所对应的数组的值(这个值也可以在函数体中通过this关键字获取,但是JavaScript通常会把this这个值当作一个对象即使他只是一个简单的字符串或者是一个数字),这个函数返回所遍历的对象,也就是这个函数的第一个参数,注意这里还是原来的那个数组,这是和map的区别。

其中collection代表目标数组,callback代表回调函数(自己定义),回调函数的参数第一个是数组的下标,第二个是数组的元素。当然我们也可以给回调函数只设定一个参数,这个参数一定是下标,而没有参数也是可以的。

JavaScript获取DOM元素的11种方法总结

1.通过顶层document节点获取:

(1)document.getElementById(elementId):该方法通过节点的ID,可以准确获得需要的元素,是比较简单快捷的方法。如果页面上含有多个相同id的节点,那么只返回第一个节点。

如今,已经出现了如prototype、Mootools等多个JavaScript库,它们提供了更简便的方法:(id),参数仍然是节点的id。这个方法可以看作是document.getElementById()的另外一种写法,不过

()的功能更为强大,具体用法可以参考它们各自的API文档。

(2)document.getElementsByName(elementName):该方法是通过节点的name获取节点,从名字可以看出,这个方法返回的不是一个节点元素,而是具有同样名称的节点数组。然后,我们可以通过要获取节点的某个属性来循环判断是否为需要的节点。

例如:在HTML中checkbox和radio都是通过相同的name属性值,来标识一个组内的元素。如果我们现在要获取被选中的元素,首先获取改组元素,然后循环判断是节点的checked属性值是否为true即可。

(3)document.getElementsByTagName(tagName):该方法是通过节点的Tag获取节点,同样该方法也是返回一个数组,例如:document.getElementsByTagName(‘A’)将会返回页面上所有超链接节点。在获取节点之前,一般都是知道节点的类型的,所以使用该方法比较简单。但是缺点也是显而易见,那就是返回的数组可能十分庞大,这样就会浪费很多时间。那么,这个方法是不是就没有用处了呢?当然不是,这个方法和上面的两个不同,它不是document节点的专有方法,还可以应用其他的节点,下面将会提到。

2、通过父节点获取:

(1)parentObj.firstChild:如果节点为已知节点(parentObj)的第一个子节点就可以使用这个方法。这个属性是可以递归使用的,也就是支持parentObj.firstChild.firstChild.firstChild…的形式,如此就可以获得更深层次的节点。

(2)parentObj.lastChild:很显然,这个属性是获取已知节点(parentObj)的最后一个子节点。与firstChild一样,它也可以递归使用。

在使用中,如果我们把二者结合起来,那么将会达到更加令人兴奋的效果,即:parentObj.firstChild.lastChild.lastChild…

(3)parentObj.childNodes:获取已知节点的子节点数组,然后可以通过循环或者索引找到需要的节点。

注意:经测试发现,在IE7上获取的是直接子节点的数组,而在Firefox2.0.0.11上获取的是所有子节点即包括子节点的子节点。

(4)parentObj.children:获取已知节点的直接子节点数组。

注意:经测试,在IE7上,和childNodes效果一样,而Firefox2.0.0.11不支持。这也是为什么我要使用和其他方法不同样式的原因。因此不建议使用。

(5)parentObj.getElementsByTagName(tagName):使用方法不再赘述,它返回已知节点的所有子节点中类型为指定值的子节点数组。例如:parentObj.getElementsByTagName(‘A’)返回已知的子节点中的所有超链接。

3、通过临近节点获取:

(1)neighbourNode.previousSibling:获取已知节点(neighbourNode)的前一个节点,这个属性和前面的firstChild、lastChild一样都似乎可以递归使用的。

(2)neighbourNode.nextSibling:获取已知节点(neighbourNode)的下一个节点,同样支持递归。

4、通过子节点获取:

(1)childNode.parentNode:获取已知节点的父节点。

上面提到的方法,只是一些基本的方法,如果使用了Prototype等JavaScript库,可能还获得其他不同的方法,例如通过节点的class获取等等。不过,如果能够灵活运用上面的各种方法,相信应该可以应付大部分的程序。

JavaScript中的内置对象Object是什么

为什么我总喜欢回答这种冷门话题。。先回答题主的疑惑,我们先了解下JavaScriptprototype的定义和用法,prototype的定义是使您有能力向对象添加属性和方法。简单的语法为

object.prototype.name=value

那么a是一个TestClass对象实例,那么根据上面应该很容易回答了,a是对象实例,不是对象,prototype不会给对象实例提供添加属性和方法的能力。

那么我们来看下Object在JavaScript中的使用吧,虽然一般而言平时会用Object去存储数据,不会用什么功能,不过Object实际上还是比较强大的,尤其在ES5之后。

创建对象

new构造函数法

这不用解释了吧,加上new关键字和Object构造函数,添加属性后我们就可以存储数据。

对象字面量

这个也很好理解,使用字典方式直接创建对象,很简单。不过有点要注意的是,如果是最后一个属性,最好不要加逗号,毕竟有些浏览器下会报错。

常用的对象实例的属性和方法

toString()方法

toString用来返回对象的字符串表示。

valueOf()方法

valueOf方法返回对象的原始值,可能是字符串、数值等。

constructor属性

constructor属性是保存当前对象的构造函数。

hasOwnProperty(propertyName)方法

hasOwnProperty方法接收一个字符串参数,该参数表示属性名称,用来判断该属性是否在当前对象实例中。

以上还有很多其他的方法和属性未提及到,我平常开发中Object也是最经常使用的对象,现在从ES5的发展来看,Object的功能已经强大了很多,我看网上的教程也挺复杂,这主要是因为js本身没有完整的面向对象和自定义类型支持有关系,虽然ES6已经很尽力了。

如果你对学习人工智能和科技新闻感兴趣,可以订阅我的头条号,我会在这里发布所有与算法、机器学习以及深度学习有关的有趣文章。偶尔也回答有趣的问题,有问题可随时在评论区回复和讨论,看到即回。

(码字不易,若文章对你帮助可点赞支持~)

好了,文章到这里就结束啦,如果本次分享的prototype用法和prototype动词怎么用问题对您有所帮助,还望关注下本站哦!

最新文章