资讯专栏INFORMATION COLUMN

JS对象创建的几种方式

ixlei / 1139人阅读

摘要:上述每次都需要写可以优化但是此处改变了的属性,故我们需要显示的指出构造函数和原型组合模式二创建空对象前两种方式创建的对象含有原型,最后一种方式创建的对象无原型,是真正意义上的空对象参考资料

一.创建对象的几种方式 1. 使用new关键字创建
var ob = new Object()
ob.name = "name"
ob.say = function() {}
2.使用字面量的方式创建
var ob = {
name: "name",
say: function() {}
}
3.使用工厂模式创建
批量创建对象的方式
function createOb (name){
    var ob = new Object()
    ob.name = name
    ob.say = function() {}
    return ob
}
var ob1 = createOb("zhang")
var ob2 = createOb("san")
4.构造函数的方式创建
构造函数需要大写
function Parent(name) {
    this.name = name
    this.say = function() {}
}
var child1 = new Parent("child1")
var child2 = new Parent("child2")
5. 原型方式创建
当我们创建一个函数时,该函数就会具备一个prototype属性,这个属性指向通过构造函数创建的那个函数的原型对象。通俗点讲原型对象就是内存中为其他对象提供共享属性和方法的对象。
function Parent2(name) {
    Parent2.prototype.name = name
    Parent2.prototype.say = function() {}
}
上述每次都需要写Parent2.prototype,可以优化
function Parent3() {}
Parent3.prototype = {
    name: "name"
    say: function(){}
}
var ob = new Parent3
但是此处改变了Parent3的constructor 属性,故我们需要显示的指出constructor  
function Parent4() {}
Parent4.prototype = {  
    constructor: Parent4,
    name: "name",
    say: function() {}
}
var ob = new Parent4()
6.构造函数和原型组合模式
function Parent5(name) {
    this.name = name
}
Parent5.prototype = {
    constructor: Parent5,
    say: function() {}
}
var ob = new Parent5("zhang")
二创建空对象
var ob1 = {}
var ob2 = new Object()
var ob3 = Object.create(null)
前两种方式创建的对象含有原型,最后一种方式创建的对象无原型,是真正意义上的空对象  
参考资料

https://segmentfault.com/a/11...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/106086.html

相关文章

  • js 创建对象几种方式

    摘要:可以无数次地调用这个函数,而每次它都会返回一个包含三个属性一个方法的对象构造函数模式原型模式组合使用构造函数模式和原型模式创建自定义类型的最常见方式,就是组合使用构造函数模式与原型模式。 JS中创建对象的主要模式有 工厂模式 工厂模式抽象了具体创建对象的过程例如 function createPerson(name, age, job){     var o = new Object(...

    seanlook 评论0 收藏0
  • Js创建对象几种方式

    摘要:对象字面量的方式今年创建实例的发明者我是今年属性是可以动态添加,修改的构造函数无参构造函数有参构造函数我叫,今年岁实例化创建对象调用方法由于指针在对象实例的时候发生改变指向新的实例。是我的名字混合方式构造函数原型我是,今年 javascript创建对象简单的说,无非就是使用内置对象或各种自定义对象,当然还可以用JSON;方法很多,也能混合使用。 对象字面量的方式: var pers...

    willin 评论0 收藏0
  • JS创建对象几种设计模式

    摘要:构造函数模式定义构造函数模式是语言创建对象的通用方式。但两种语言用构造函数创建对象的方式略有不同在中没有类的概念,函数即为一等公民,因此,不必显式声明某个类,直接创建构造函数即可,类的方法和属性在构造函数中或原型对象上处理。 工厂模式 定义:工厂模式非常直观,将创建对象的过程抽象为一个函数,用函数封装以特定接口创建对象的细节。通俗地讲,工厂模式就是将创建对象的语句放在一个函数里,通...

    Galence 评论0 收藏0
  • js面向对象浅析---对象创建几种常见方式

    摘要:前言虽然使用构造函数或者使用对象字面量可以很方便的用来创建一个对象,但这种方式有一个明显的缺点使用一个接口创建多个对象会产生很多冗余的代码。即调用构造函数所创建的那个对象的原型对象好处是可以让所有对象的实例共享他的属性的方法。 前言 虽然使用Object构造函数或者使用对象字面量可以很方便的用来创建一个对象,但这种方式有一个明显的缺点:使用一个接口创建多个对象会产生很多冗余的代码。因此...

    Invoker 评论0 收藏0
  • 细节:js 创建对象几种模式举例

    摘要:工厂模式不推荐应该把方法放在函数的外面,避免重复创建该方法定义的不是构建函数,因该使用方法创建实例,而不是方法不要忘记在函数的最后构造函数模式不推荐使用指代,函数无需明确应该把方法放在函数的外面,避免重复创建该方法原型模式不推荐函数中不对属 工厂模式(不推荐) var sayName = function(){ return this.name; }; function cr...

    laznrbfe 评论0 收藏0

发表评论

0条评论

ixlei

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<