JavaScript 有哪几种创建对象的方式?

javascript创建对象简单的说,无非就是使用内置对象或各种自定义对象,当然还可以用JSON;但写法有很多种,也能混合使用。

(1)对象字面量的方式

person={firstname:"Mark",lastname:"Yun",age:25,eyecolor:"black"};

(2)用function来模拟无参的构造函数function Person(){}

var person = new Person(); //定义一个function,如果使用new"实例化",该function可以看作是一个Class
person.name = "Xiaosong";
person.age = "23";
person.work = function() {
alert("Hello " + person.name);
}
person.work();

(3)用function来模拟参构造函数来实现(用this关键字定义构造的上下文属性)

function Person(name,age,hobby) {
this.name = name; //this作用域:当前对象
this.age = age;
this.work = work;
this.info = function() {
alert("我叫" + this.name + ",今年" + this.age + "岁,是个" + this.work);
}
}
var Xiaosong = new Person("WooKong",23,"程序猿"); //实例化、创建对象
Xiaosong.info(); //调用info()方法

(4)用工厂方式来创建(内置对象)

function Person(name,age,hobby) {
this.name = name; //this作用域:当前对象
this.age = age;
this.work = work;
this.info = function() {
alert("我叫" + this.name + ",今年" + this.age + "岁,是个" + this.work);
}
}
var Xiaosong = new Person("WooKong",23,"程序猿"); //实例化、创建对象
Xiaosong.info(); //调用info()方法

(5)用原型方式来创建

function Standard(){}
Standard.prototype.name = "ECMAScript";
Standard.prototype.event = function() {
alert(this.name+"是脚本语言标准规范");
}
var jiaoben = new Standard();
jiaoben.event();

(6)用混合方式来创建

function iPhone(name,event) {
this.name = name;
this.event = event;
}
iPhone.prototype.sell = function() {
alert("我是"+this.name+",我是iPhone5s的"+this.event+"~ haha!");
}
var SE = new iPhone("iPhone SE","官方翻新机");
SE.sell();

最新文章

  1. spring session 和 spring security整合
  2. JS splice() 定义和用法
  3. 开发板ping不通主机和虚拟机的看过来(转载)!
  4. 写在开始编写Java之前(2)——Java的环境
  5. ios基础篇(十八)——Delegate 、NSNotification 和 KVO用法及其区别
  6. Windows8和CentOS6.4(64)双系统硬盘安装(图文)【转】
  7. [GraphQL] Use Arguments in a GraphQL Query
  8. 从cookie的setDomain方法可以得知localhost不是域名
  9. mysql 事务提交过程
  10. HDU 5777 domino (排序,水题)
  11. iOS 之 通知
  12. java基于注解的redis自动缓存实现
  13. Oracle day04 DML_事务_序列_视图_数据类型_DDL
  14. 关于reduce的理解
  15. python内涵段子爬取练习
  16. GCC编译器原理(一)------交叉编译器制作和GCC组件及命令
  17. 图的封装(C++)
  18. antd tree组件文件名换行 + 点击展开时,自动收起同级其他展开目录
  19. 团队项目管理:Github项目误删恢复记录
  20. C# 获取电脑MAC地址,IP地址,物理内存,CPU序列号,硬盘ID..........................

热门文章

  1. Python面向对象----封装
  2. JavaScript(DOM编程二)
  3. 2015 Multi-University Training Contest 9 hdu 5396 Expression
  4. Codeforces 456B Fedya and Maths 打表找规律
  5. lightoj--1410--Consistent Verdicts(技巧)
  6. [转]Linux常用命令学习
  7. UICollectionView的注册
  8. 在Maven中引入spring的DAO、DOMAIN、CONTROLLER、VIEW
  9. 获取sqlserver数据字典的完整sql
  10. windows 下安装 php-memcached 扩展