1. 程式人生 > >javascript物件基礎(使用物件)---4物件、屬性、方法的高階操作-Fucntion和String

javascript物件基礎(使用物件)---4物件、屬性、方法的高階操作-Fucntion和String

ECMAScript5為Function增加了一個原型方法bind(Function.prototype.bind), 用來把函式繫結到指定物件上

function.bind(thisArg[,arg1[,arg2[,arg3]]]);其中thisArg,this關鍵字可在新函式中引用的物件

例:

   var checkNumericRange=function(value){

     if(typeof  value !=='number')

          return  false;

    else  

         return  value>=this.minimum&&value<=this.maimum;

}

var range={minimum:10,maximum:20};

var boundCheckNumericRange= checkNumericRange.bind(range);//注意  bind(括號裡面是  物件)

var result=boundCheckNumericRange(12)// true

 

例2:

var originalObject={

  minimum:50,

  maximum:100,

var checkNumericRange=function(value){

     if(typeof  value !=='number')

          return  false;

    else  

         return  value>=this.minimum&&value<=this.maimum;

}

}

var  result=originalObject. checkNumericRange(10);

document.write(result);// false  ,此時的this指向originalObject  ,

range={minimum:10,maximum:20};

var boundObjectWithRange=originalObject.checkNumericRange.bind(range);//this現在指向range物件

var result=boundObjectWithRange(10);

document.write(result);// true,說明bind改變了函式的this指向,this現在指向bind括號裡面的物件,即繫結的那個物件

 

例3,利用bind為函式兩次傳遞引數,實現連續引數求值計算

var displayArgs=function(val1,val2,val3,val4){

   document.write(val1+" "+val2+" "+val3+" "+val4)

}

var emptyObject={};

var displayArgs2=displayArgs.bind(emptyObject,12,"a");

displayArgs2("b","c");// 12 a  b  c

 

String:ECMAScript5新增了trim()方法利用該方法可以從字串中移除前導空格、尾隨空格、行終止符

  stringObj.trim() --移除空格 、tab製表符、回車符、換行符

  var message="      abc  def     \r\n   ";

document.write("["+message.trim()+"]");  //[abc def],注意字母中間的空格  是不會去除的

document.write("</br>");

document.write("length"+message.trim().length);  //7