美文网首页
创建对象常用的四种方式Ⅲ

创建对象常用的四种方式Ⅲ

作者: 7月7日晴i | 来源:发表于2017-07-20 22:56 被阅读0次

构造函数模式

回顾一下上一篇说的工厂函数模式,它的好处是可以批量的生产对象。

系统内置类数组创建的方式

var arr = new Array();

差别
1.调用方式不同 一个一直调用 一个new调用
2.首字母大写

用new调用和函数执行调用的区别:

function Fn(){

}
var res1 = Fn(); //直接调用 返回值是undefined
var res2 = new Fn(); // 用new调用 返回的是当前类的实例
// 使用new调用的时候 Fn有了一个新的名字 => 类 .new Fn()的过程 叫做创建Fn的实例 默认返回当前类的实例的对象 =>this
console.log(res1,res2); //undefined,Fn

function Fn(){
  console.log(this); //Fn
}
console.log(res2); //Fn

构造函数

function Person(name,age){
  this.name = name; 
  this.age = age; 
  this.say = function(){ 
    console.log("my name is"+this.name+"my age is"+this.age);
 }
var p1 = new Person("Jack",9);
p1.say(); //my name is Jack my age is 9

需要注意
1.如果在构造函数模式中 new Fn()执行,如果Fn不需要传递参数的话,括号可以省略

function Fn(){
  this.say = function(){
    console.log("fn 执行");
  }
}
var f1 = new Fn(); // 如果不传参数 可以把()省略
f1.say();

2.this的指向问题,在类中出现的this.xxx = xxx中的this都是指向当前类的实例
3.什么是类?什么是实例?
把类理解成生产线,实例理解成产品

function Car(){ //Car这个类相当于汽车的生产线

}
var c1 = new Car(); // 这就是一个实例
var c2 = new Car();

4.在构造函数模式中,函数名叫做类名,类有普通函数的一面,当函数执行的时候,var num 其实只是当前形成的私有作用域和私有变量

function Fn(){
  var num = 10; // 普通的局部变量
  this.name = "Jack";
  this.say = function(){
    console.log("hello");
  }
}
var f1 = new Fn();
console.log(f1.num); // undefined

5.在构造函数中,浏览器会默认把我们的实例返回(this),是一个对象数据类型的。如果用户指定返回值
1)返回值是基本数据类型,那么用new调用时不理,仍然返回this。
2)如果返回引用数据类型,那么不再默认返回this,而是返回用户指定的数据。

function Fn(){
  return 123;
  return {"name":"jack"}; // 对象
  return function(){ // 函数
    console.log(123);
  }
}
var f1 = new Fn();
console.log(f1); //Fn()  用new调用没有返回123,仍然返回this(当前类的实例)  会返回对象和函数

function Fn(){
  return 123;
  return {"name":"jack"}; // 对象
  return function(){ // 函数
    console.log(123);
  }
}
var res = Fn();
console.log(res); //123  返回对象和函数

相关文章

  • Java创建对象的方式

    原先了解的Java创建对象有四种方式: (1)用new 语句创建对象,这是最常用的创建对象方法。 (2)运用反射手...

  • 创建对象常用的四种方式Ⅰ

    一、创建对象常用的几种方式 1.字面量方式 对象数据类型:可以给数据进行分组,即使属性名和方法名重复,也不会发生覆...

  • 创建对象常用的四种方式Ⅱ

    工厂模式 前面提到了字面量方式和new的方式下面来说一下它们的弊端 上面可以看出上面两端代码有大量重复内容,所以它...

  • 创建对象常用的四种方式Ⅲ

    构造函数模式 回顾一下上一篇说的工厂函数模式,它的好处是可以批量的生产对象。 系统内置类数组创建的方式 差别1.调...

  • 16、Java创建对象有几种方式?

    Java创建对象有几种方式? java中提供了以下四种创建对象的方式: 1、new创建新对象; 2、通过反射机制;...

  • JS创建对象及对象属性获取

    组合方式创建对象 除了常用的创建单个对象的方式外,我们希望批量创建对象时,一般采用组合方式来创建对象。下面是具体的...

  • 17-对象的实例化、内存分配与访问定位演示

    一、对象的实例化 1.1、创建对象常用的方式 -1、最常用的方式 2、Class的newInstance 3、Co...

  • 六、jquery里面的ajax

    常用的方式有四种:1、了解:jquery对象.load(url, params, function(数据){ })...

  • Java对象

    [toc] HotSpot中的对象 对象的创建 Java对象创建大致有如下四种方式: new关键字这应该是我们最常...

  • JavaScript常用对象和方法

    String 一、创建方式 二、属性和方法 Array 一、创建方式 二、属性 三、常用方法 Date 对象的创建...

网友评论

      本文标题:创建对象常用的四种方式Ⅲ

      本文链接:https://www.haomeiwen.com/subject/yybjkxtx.html