JavaScript中的“创建对象”

JS是一门什么样的语言

  1. 解释型语言 :不预编译
  2. 基于对象的语言 :但不是面向对象的语言,也就是说他没有继承、多态的特性,但可以进行模拟,来实现面向对象
  3. 脚本语言 :script
  4. 动态语言 :代码(变量)只有执行到这个位置的时候,才知道这个变量中到底存储的是什么。没有什么“ . ”什么,那么就可以为对象添加属性或者方法。
  5. 弱类型语言 :var

创建对象的方式

  1. 调用系统的构造函数创建对象
var obj = new Object();
obj.name = "wang";
obj.f1 = function () {
    console.log(this.name);
};

obj.f1();//调用
  1. 工厂函数模式创建对象
function persion(na) {
    var oo = new Object();
    oo.name = na;
    oo.f1 = function () {
        console.log(oo.name);
    };
    //注意:返回对象
    return oo;
}
persion("wang").f1();
  1. 自定义构造函数创建对象
//注意:构造函数名称大写
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"]();
  1. 字面量的方式创建对象
//注意赋值的方式是分号
//缺点:无法改值,一次性的对象。
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]);
}
发布了51 篇原创文章 · 获赞 20 · 访问量 1534

猜你喜欢

转载自blog.csdn.net/qq_39711439/article/details/102865275