一、JavaScript是基于原型(prototype)的面向对象的语言,没有类的慨念;
var obj = new Object(); 等同于 var obj = {};
var array = new Array(); 等同于 var array = [];
二、JavaScript中的继承: 即简单的从一个对象原型向另一个对象原型复制方法而实现的
例如:
function init() {
var person={}; // 等同于 var person = new Object();
person.getName = function(){
alert("person name");
}
person.getAge = function(){
alert("person age");
}
// 创建另一个对象
var student = {};
stucent.getStuNum = function(){
alert("student StuNum");
}
student.getName = person.getName;
person.getName = function(){
alert("person1 rane");
}
student.getAge = person.getAge;
student.getName();
person.getName(); // person.getName方法被重写,导致打印出 person1 name
}
执行结果:
person name;
person1 name;
三、构造函数:
function myConstructor(a){
/*某些代码*/
}
等同于: var myConstructor = new Function('a', '/*某些代码*/'); // 该方式有性能问题,不推荐使用
四、typeof用法:
if(document.mylist.length != "undefined" ) {} 这个用法有误.
正确的是 if( typeof(document.mylist.length) != "undefined" ) {}
或 if( !isNaN(document.mylist.length) ) {}
typeof的运算数未定义,返回的就是 "undefined".
运算数为数字 typeof(x) = "number"
字符串 typeof(x) = "string"
布尔值 typeof(x) = "boolean"
对象,数组和null typeof(x) = "object"
函数 typeof(x) = "function"