JavaScript学习笔记之四 对象 及原型

来源:互联网 发布:c语言malloc 编辑:程序博客网 时间:2024/05/22 06:38

(4)ECMAScript中的常用对象及其属性和方法之

 Math

Math.abs( -5 )

Math.pow(2, 10)

Math.sqrt( 9 )

Math.max( 10, 20,15)

Math.min( 10, 20,15 )

Math.round( 1.4 )

Math.ceil( num )              天花板,上取整,返回不小于指定值的最小整数

Math.floor( num )            地板,下取整,返回不大于指定值的最大值

*Math.random( )              生成0~1间的一个伪随机小数,可能生成0,但不可能生成1,即0<= Math.random( ) < 1

0<=Math.random( )*10 < 10                               带小数点

0<=Math.floor( Math.random( )*10 ) < 10         0~10间的随机整数

0<=parseInt( Math.random( )*10 ) < 10             0~10间的随机整数

0<=parseInt( Math.random( )*100 ) < 100         0~100间的随机整数

100<=Math.random()*900+100<1000                100~1000间的随机整数

min<=Math.random()*(max-min)+min< max    min~max间的随机数



.JavaScript中Object的分类

(1)ECMAScript原生对象: Array、String、RegExp、Global、Math、Date、Number、Boolean、Error(+六种)、Object

(2)BOM:   Window

(3)DOM:   Document

(4)自定义对象:  用户自己创建的对象



ES中预定义的Error对象都有哪些?

Error:  广泛意义上的错误

SyntaxError: 语法错误      var x = 10; x+++;

ReferenceError:  引用错误     var userName = 'tom'; console.log(uName);

TypeError:  类型错误     console.abc();

EvalError:  eval()函数执行错误   

RangeError:范围错误     var n = 123.456;   console.log( n.toFixed(20) );

URIError:  URI解析错误

 

错误处理

  程序执行过程中,可能发生,也可能不发生的问题,称为“错误”或“异常”。

  若程序没有错误发生,则可以正常执行至结束;

  若程序发生了错误,若没有加以处理,会导致程序终止执行;但若加以恰当的处理,程序仍可能正常执行。

  错误处理语法结构:

try{

//可能抛出错误对象的语句 new Error();

}catch( 用于接收错误对象的变量名 ){

//错误处理语句

}[finally{

//不论错误发生与否都要执行的扫尾语句

}]

typeof元素符可能的返回值:

number  string  boolean   object   function undefined

注意:null值也被看做object



1.面向对象编程的三个基本特征

(1)封装——把多个数据及这些数据操作方法组成一个整体

varstudent1 = {

sname: 'Tom',

math: 95,

chinese: 88,

total: function(){  returnthis.math+this.chinese; }

}

(2)继承——子对象可以继承父对象的所有属性和方法

varemp1 = {   };

console.log(  emp1.valueOf( )  );

console.log(  emp1.toString(  )  );

console.log(  emp1.hasOwnProperty( 'ename' )  );

(3)多态——一个方法,根据接收到的参数个数、类型的不同,而执行不同的代码

functionadd(  ){

if(arguments.length){    }

if(typeof(arguments[0] ) === 'number'){  }

}

创建自定义对象的四种方法

(1)对象直接量语法:    var e1 = {  ename: 'Tom'  };

(2)new调用Object构造方法:     var e2 = new Object();     e2.ename='Mary';

(3)使用对象模板:   function Emp(ename){this.ename =ename;}   var e3=new Emp('John'); 

(4)ES5提供的,用于继承原型对象所有成员。

  var childObject = Object.create( prototypeObject );

  通过指定一个原型对象(父对象),创建一个继承自该对象的子对象

获取一个对象的原型:

  JS中所有对象都有父对象(原型对象),但原型属性的名称有如下规则:

(1)构造函数对象的原型属性:  构造函数名.prototype

(2)其他形式的对象的原型属性:  对象名.__proto__

  要想获取任意对象的原型,可以使用Object.getPrototypeOf( 对象名 );

  要想修改任意对象的原型,可以使用Object.setPrototypeOf( 对象名, 原型对象名 );


 
常见的继承方法

(1) 使用构建对象第四种方法

        var person = { name:'Tom', age:25 };  //newObject( )

        var student = Object.create( person );

       student.score = 650;

     

  (2) 使用Object.setPrototypeOf(obj, proto )方法

varperson = { name:'Tom', age:25 };

varstudent = { score:650 };

Object.setPrototypeOf(student, person ); 

修改student的原型为person,即让student继承person


(3)使用对象模板实现继承

varperson = { name:'Tom', age:25 };

functionStudent( score ){

this.score= score;

}

//修改对象模板的原型,就会修改根据此模板创建的所有对象的原型

Student.prototype = person ;  

varstudent1 = new Student(650);

varstudent2 = new Student(630);

//Student.prototype.className= 'WEB1501' ;

//console.log(student1.className);

//console.log(student2.className);



0 0
原创粉丝点击