JS对象创建方式
1. 字面量
var obj =
{
"name":"zhansan",
"age":25,
"say": function(m) {
console.log(obj.age + m);
console.log(obj.name + m);
}
};
2. 通过new创建内置对象
关键字new
后跟随一个函数调用,这里的函数条用称作构造函数(constructor)
var obj = new Object()
3. 实例化自定义对象,通过 new + 自定义构造函数
function Fn() {
}
//实例化了一个空对象和 new Object()一样
var obj = new Fn()
function Fn() {
this.age = 40;
this.name = "zhansan";
this.say = function() {
return 'Hello'
}
}
var obj = new Fn();//实例化构造函数得到实例对象
console.log(obj);
obj
构造函数和普通函数中 this的指向问题
1. 在构造函数中this指向当前实例对象
2. 在普通函数中this指向window对象,这是js内置的全局对象。
此外我们平时用的alert("")
等方法都是window对象的方法和window.alert("")等价的,window.
是可省略的。我们平时定义的全局变量
也是放在window对象
里面的
区分变量的类型
1,typeof 可以区分 int
、string
、 bool
、undefined
、function
不能区分 null
、array
、object
,这几个类型用typeof判断返回的都是Object。为了区分我们使用instanceof 判断是否是指定对象的实例对象,又由于Array既是Object类型有是Array类型,所以先判断是不是Array,如果不是Array在判断是否是Object。具体代码如下
function getType(n) {
if (typeof n == 'object') {
if (n instanceof Array) {//先判断数组,因为数组即使Array又是Object
return "array";
} else if (n instanceof Object) {
return "object";
}else{
return "null";
}
} else{
return typeof n;
}
}
网友评论