JS是一门什么样的语言
- 解释型语言 :不预编译
- 基于对象的语言 :但不是面向对象的语言,也就是说他没有继承、多态的特性,但可以进行模拟,来实现面向对象
- 脚本语言 :script
- 动态语言 :代码(变量)只有执行到这个位置的时候,才知道这个变量中到底存储的是什么。没有什么“ . ”什么,那么就可以为对象添加属性或者方法。
- 弱类型语言 :var
创建对象的方式
- 调用系统的构造函数创建对象
var obj = new Object();
obj.name = "wang";
obj.f1 = function () {
console.log(this.name);
};
obj.f1();//调用
- 工厂函数模式创建对象
function persion(na) {
var oo = new Object();
oo.name = na;
oo.f1 = function () {
console.log(oo.name);
};
//注意:返回对象
return oo;
}
persion("wang").f1();
- 自定义构造函数创建对象
//注意:构造函数名称大写
function Person() {
this.name = "haha";
this.f1 = function () {
console.log(this.name);
}
}
var person = new Person();
person.f1();
//改值
person.name = "aaa";
//或
person["name"] = "aaa";
//调用方法
person["f1"]();
- 字面量的方式创建对象
//注意赋值的方式是分号
//缺点:无法改值,一次性的对象。
var obj = {
name: "wang",
f1: function () {
console.log(this.name)
}
};
//调用
obj.f1();
new Person(); 执行这条语句进行了如下操作:
4. 申请内存空间
5. 将this设置为当前对象
6. 设置对象的属性和方法,如果有的话
7. 返回本对象(this)
JSON (JavaScript 对象表示法)
以键值对的形式进行存储
var json = {
"name":"小明",
"age":18,
"sex":true
};
//获取属性的值
console.log(json.name); //注意,使用.的方式要保证这个属性名存在,否则会创建新的属性
console.log(json["name"]);
//迭代json对象中所有属性的值
for (var key in json) {
console.log(json[key]);
}