JavaScript 常见创建对象的方式
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();
最新文章
- spring session 和 spring security整合
- JS splice() 定义和用法
- 开发板ping不通主机和虚拟机的看过来(转载)!
- 写在开始编写Java之前(2)——Java的环境
- ios基础篇(十八)——Delegate 、NSNotification 和 KVO用法及其区别
- Windows8和CentOS6.4(64)双系统硬盘安装(图文)【转】
- [GraphQL] Use Arguments in a GraphQL Query
- 从cookie的setDomain方法可以得知localhost不是域名
- mysql 事务提交过程
- HDU 5777 domino (排序,水题)
- iOS 之 通知
- java基于注解的redis自动缓存实现
- Oracle day04 DML_事务_序列_视图_数据类型_DDL
- 关于reduce的理解
- python内涵段子爬取练习
- GCC编译器原理(一)------交叉编译器制作和GCC组件及命令
- 图的封装(C++)
- antd tree组件文件名换行 + 点击展开时,自动收起同级其他展开目录
- 团队项目管理:Github项目误删恢复记录
- C# 获取电脑MAC地址,IP地址,物理内存,CPU序列号,硬盘ID..........................
热门文章
- Python面向对象----封装
- JavaScript(DOM编程二)
- 2015 Multi-University Training Contest 9 hdu 5396 Expression
- Codeforces 456B Fedya and Maths 打表找规律
- lightoj--1410--Consistent Verdicts(技巧)
- [转]Linux常用命令学习
- UICollectionView的注册
- 在Maven中引入spring的DAO、DOMAIN、CONTROLLER、VIEW
- 获取sqlserver数据字典的完整sql
- windows 下安装 php-memcached 扩展