内置对象原型的调用

发布订阅模式的publisher中有这么一句代码,将arguments转换为真正的数组

var args = Array.prototype.slice.call(arguments,0);

这种算内置对象原型的调用,可以使用;

而编码规范中要求的“不允许修改内置的对象原型”是类似下面这种

String.prototype.startsWith = function(text) {
            return this.indexOf(text) == 0;
        }

arguments是个Object。它有 [0],[1],length,不能代表它就是个数组,它还有别的东西

Array                              arguments                     

function fn() {
        console.log(typeof arguments);   //object
        console.log(arguments instanceof Array); //false
        for(var i = 0; i < arguments.length;i++) {
            console.log(arguments[i]);
        }
        var arr = [1,2,3];
        console.log(arr);
    }

对于数组有一个forEach用法

function showResults(value, index) {
        console.log(‘value:‘ + value);
        console.log(‘index:‘ + index);
    }var arr = [‘nihao‘, ‘nibuhao‘, ‘nihaobuhao‘];arr.forEach(showResults);

//console.log

value:nihao 
  index:0 
  value:nibuhao
  index:1
  value:nihaobuhao
  index:2

 

arguments不能用forEach

     function fn() {
        arguments.forEach(showResults);
    }

    function showResults(value, index) {
        console.log(‘value:‘ + value);
        console.log(‘index:‘ + index);
    }

    fn(‘nihao‘, ‘nibuhao‘);

    //Uncaught TypeError: undefined is not a function 
时间: 2024-10-10 05:01:03

内置对象原型的调用的相关文章

javascript高级知识点——内置对象原型

代码信息来自于http://ejohn.org/apps/learn/. 可以修改内置对象的方法. if (!Array.prototype.forEach) { Array.prototype.forEach = function(fn){ for ( var i = 0; i < this.length; i++ ) { fn( this[i], i, this ); } }; } ["a", "b", "c"].forEach(fun

JSP中的内置对象和Struts中的Web资源的详解

JSP中的内置对象有如下几种: request :继承于HttpServletRequest, HttpServletRequest继承ServletRequest, 获得的Request对象的方法:只能在Servlet中获取的doGet()和doPost()方法中获取 作用:封装用户请求信息 response   : 继承于HttpServletResponse,   HttpServletResponse继承ServletResponse 获得response对象的方法:只能在Servlet

表达式语言--内置对象

在表达式语言中存在很多内置对象, pageContext, pageScope,requestScope,sessionScope,applicationScope,param,paramValues,header,headerValues,cookie,initParam <%@ page contentType="text/html" pageEncoding="GBK"%> <html> <head><title>

JS内置对象的原型不能重定义?只能动态添加属性或方法?

昨天马上就快下班了,坐在我对面的同事突然问我一个问题,我说“爱过”,哈哈,开个玩笑.情况是这样的,他发现JS的内置对象的原型好像不能通过字面量对象的形式进行覆盖, 只能动态的为内置对象的原型添加属性或方法,下面那个具体的例子说明: var arr=[]; Array.prototype={ push:function(){ alert("1"); } }; arr.push(); //没有任何输出 有人可能会说了“你先定义的arr,后来又修改了Array.prototype,这时Arr

内置对象和自定义对象的原型链

内置对象的原型链 新增属性 Object.prototype.mytest = function() { alert("123"); } var o = new Object(); o.mytest(); 重写属性 Object.prototype.toString = function() { alert("破话之王"); } o.toString();

内置对象Array的原型对象中添加方法

// //倒序字符串的方法String.prototype.myReverse=function () { for(var i=this.length-1;i>=0;i--){ console.log(this[i]); }};var str="1234567";str.myReverse(); //为内置对象Array的原型对象中添加方法Array.prototype.mySort=function () { for(var i=0;i<this.length-1;i++

javascript中的内置对象总结

内置对象 标准内置对象 Object Object.create Object.prototype.toString Object.prototype.hasOwnProperty Boolean String String.prototype.indexOf String.prototype.replace String.prototype.split Number Number.prototype.toFixed Array Array.prototype.splice Array.prot

javascript 内置对象及常见API

javascript 内置对象及常见API 2012-09-02 15:17 571人阅读 评论(0) 收藏 举报 javascript正则表达式文档浏览器urlstring Javascript内置对象学习 全局属性 Infinity 表示正无穷大的数值 NaN 非数字值 undefined 未定义的值 decodeURI() 对encodeURI()转义的字符串解码. decodeURIComponent() 对encodeURIComponent()转义的字符串解码. encodeURI(

DOM笔记(九):引用类型、基本包装类型和单体内置对象

一.Array 1 .创建数组的方式 //Array构造函数(可以去掉new)var colors0 = new Array();var colors1 = new Array(20);var colors3 = new Array("red","blue","green");//数组字面量var colors4 = ["red","blue","green"];var colors5