1、简单对象的创建,使用对象字面量的方式{},创建一个对象(最简单,好理解,推荐使用)

    <script>var Star = {}; //JSONStar.name = "李沁"; //添加属性并赋值Star.age = 18;Star.sayHi = function () {alert("Hi,我" + Star.name + ",今年" + Star["age"] + "岁了"); // 可以使用“.”的方式访问属性,也可以使用 HashMap 的方式访问}Star.sayHi(); //调用对象的(方法)函数</script>

2、用 function(函数)来模拟 class

2.1  创建一个对象,相当于 new 一个类的实例(无参构造函数)

    <script>function Student() { }//定义一个 function,如果有 new 关键字去"实例化",那么该 function 可以看作是一个类var StudentOne = new Student();StudentOne.name = "李一";StudentOne.age = 18;StudentOne.learn = function () {alert(StudentOne.name + ", 是一名学霸!");}StudentOne.learn()</script>

2.2  可以使用有参构造函数来实现,这样定义更方便,扩展性更强(推荐使用)

    <script>function Star(name, age, work) {this.name = name; //this 作用域:当前对象this.age = age;this.work = work;this.sayhi = function () {alert("我叫" + this.name + ",我的工作是" + this.work);}}var liqin = new Star("李沁", 18, "喜欢你"); //实例化 创建对象liqin.sayhi(); //调用 sayhi 方法(函数)</script>

3.使用工厂方式来创建(new Object 关键字)

    <script>var obj = new Object();obj.name = "李沁";obj.age = 18;obj.work = function () {alert("我是" + obj.name + ", 是一名演员!");}obj.work();</script>

4. 使用原型对象的方式 prototype 关键字

    <script>function Fruit() { }Fruit.prototype.name = "柠檬";Fruit.prototype.eat = function () {alert(this.name + "是好吃的!");}var ningmeng = new Fruit();ningmeng.eat();var longyan = new Fruit();longyan.name = "龙眼";longyan.eat();</script>
  • 原型模式的好处是所有对象实例共享它的属性和方法(即所谓的共有属性)

  • 还可以如上最后三行代码设置自己的属性(方法),可以覆盖原型对象上的同名属性(方法)

5. 混合模式(原型和构造函数)

    <script>function Car(name, price) {this.name = name;this.price = price;}Car.prototype.sell = function () {alert( this.name + ",现在卖" + this.price + "万元");}var Audi = new Car("奥迪", 36);Audi.sell();</script>
  • 混合模式共享着对相同方法的引用,又保证了每个实例有自己的私有属性。最大限度的节省了内存

6. 动态原型的方式(可以看作是混合模式的一种特例)

    <script>function Car(name, price) {this.name = name;this.price = price;if (typeof Car.sell == "undefined") {Car.prototype.sell = function () {alert(this.name + ",现在卖" + this.price + "万元");}Car.sell = true;}}var camry = new Car("奥迪", 36);camry.sell();</script>

前端H5面试题Js: Javascript 创建对象的几种方式? (必会)相关推荐

  1. JS 面向对象 ~ 创建对象的 9 种方式

    一.创建对象的几种方式 1.通过字面量创建 var obj = {};这种写法相当于:var obj = new Object(); 缺点:使用同一个接口创建很多单个对象,会产生大量重复代码 2.通过 ...

  2. Javascript创建对象的几种方式?

    javascript 中常见的创建对象的几种方式: 1. 使用Object构造函数创建: 使用Object构造函数来创建一个对象,下面代码创建了一个person对象,并用两种方式打印出了Name的属性 ...

  3. [转载]javascript创建对象的几种方式

    原文链接:http://qingfeng825.iteye.com/blog/1935648 1. 工厂方法:能创建并返回特定类型对象的工厂函数(factory function). function ...

  4. JavaScript创建对象的6种方式

    JavaScript创建对象简单的说,无非就是使用内置对象(Object)或各种自定义对象,当然还可以用JSON,但写法有很多种,也能混合使用. 1.对象字面量的方式 person = {name : ...

  5. javascript创建对象的几种方式 .

    // 1. 工厂方法:能创建并返回特定类型对象的工厂函数(factory function). function createCar(sColor){ var car = new Object(); ...

  6. JS中创建对象:三种方式(pink)

    在 JavaScript 中,现阶段我们可以采用三种方式创建对象(object): (1)利用字面量创建对象 (2)利用new Object创建对象 (3)利用构造函数创建对象

  7. javascript 创建对象的几种方式总结

    我们一般使用字面量的形式直接创建对象,但是这种创建方式对于创建大量相似对象的时候,会产生大量的重复代码.但 js和一般的面向对象的语言不同,在 ES6 之前它没有类的概念.但是我们可以使用函数来进行模 ...

  8. JavaScript创建对象的三种方式之利用构造函数创建对象及使用方法(3)

    (1.)我们为什么需要构造函数: 因为前面两种创建对象的方式一次只能创建一个对象. (2.)什么是构造函数: 构造函数:就是把我们对象里面的一些相同的属性和方法抽象出来封装到函数里面 (3.)利用构造 ...

  9. JavaScript创建对象的三种方式之利用new object创建对象及使用方法(2)

    1.利用new object创建对象及使用方法

  10. JavaScript创建对象的三种方式之利用字面量创建对象及使用方法(1)

    1.利用对象字面量创建对象{ } { }符号是对象的字面量 2.调用对象属性以及方法

最新文章

  1. 求1-100之间的所有素数
  2. python零基础怎么学-编程零基础应当如何开始学习 Python?
  3. Redis的RDB持久化和AOF持久化区别
  4. 车载安卓中控改鸿蒙,教你改装车子中控安卓大屏,看一遍你就会了,改完后低配秒变高配...
  5. CodeM资格赛 Round A 最长树链
  6. Linux引出环境变量的关键字,学习记录008-linux常用命令/设置系统and用户环境变量two(示例代码)...
  7. spring+hibernate中clob、blob字段的处理方法
  8. 电脑重装系统U盘引导不了
  9. 解决wps在windows上弹窗等的流氓行为
  10. 光电隔离RS485典型电路
  11. 椭圆形建筑——逸夫演艺中心
  12. 目前得前端框架都有哪些?
  13. 10款国外免费VoIP服务
  14. html5如何实现无序排列,无序列表让li横排
  15. 一文搞懂0.1UF和10UF电容并联使用技巧
  16. js中用正则表达式判断字符串中是否包含中文和英文
  17. TikTok 被盯上原来是扎克伯格背后搞的鬼?
  18. MySQL所有问答题
  19. Cool-Yogurt的命名故事与组员简介
  20. NUMECA FINE/Turbo16 安装教程

热门文章

  1. 如何区别文本是BIG5还是GB
  2. Linux运维04:vmstat命令详解
  3. 分享10套好看的简历模板 | 免费Word模板下载
  4. 第1章练习题-SQL基础教程
  5. selenium反爬
  6. Python 绘制属于你的世界地图
  7. 编译protoc方法名称被自动大写
  8. Lightweight OpenPose
  9. 微弱信号检测_移动电话/手机信号增强器/扩大器
  10. ContextCapture Smart3D 使用问题汇总