首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS对象+构造函数+原型对象谈恋爱了嘛。

Person("zs", 44); obj2.say(); console.log(obj2.currentType); /** * prototype的特点:存在在原型对象里面的属性与方法可以被构造函数的所有对象所共享...* 如果原型与构造函数的属性与方法相同,优先级执行的是构造函数里面的,如果没有到原型里面找. */ ...);//构造函数里面的prototype指向了对象(原型对象) /*2.每个"原型对象"中都有一个默认的属性, 叫做constructor constructor指向当前原型对象对应的那个..."构造函数" */ console.log(Person.prototype.constructor);//原型对象里面的constructor属性指向了函数(当前原型对象对应的那个..."构造函数") /*3.通过构造函数创建出来的对象我们称之为"实例对象" 每个"实例对象"中都有一个默认的属性, 叫做__proto__ __proto__指向创建它的那个构造函数的

1.2K10

JS入门难点解析11-构造函数,原型对象,实例对象

2.4 普通调用返回undefined,而new调用返回一个对象构造函数A中的this指向了该对象,所以返回对象的属性和方法由构造函数中的this语句初始化。...2.5 可以看到,普通调用会返回return后面的值,而new调用返回一个对象构造函数A中的this指向了该对象,所以返回对象的属性和方法由构造函数中的this语句初始化。...实例对象:通过构造函数的new操作创建的对象是实例对象,又常常被称为对象实例。可以用一个构造函数,构造多个实例对象。下面的f1和f2就是实例对象。...构造函数,原型对象和实例对象的关系 5.1 指向关系 构造函数A的prototype属性指向F与其实例对象(a1,a2,...)的原型对象A.prototype,该原型对象的constructor属性指向构造函数...参考 javascript面向对象系列第一篇——构造函数和原型对象 JS入门难点解析10-创建对象 深入理解js构造函数 JavaScript构造函数详解 BOOK-《JavaScript高级程序设计

1.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    秒懂JS对象构造器函数和原型对象之间的关系

    学习JS的过程中,想要掌握面向对象的程序设计风格,对象模型(原型和继承)是其中的重点和难点,拜读了各类经典书籍和各位前辈的技术文章,感觉都太过高深,花费了不少时间才搞明白(个人智商是硬伤/(ㄒoㄒ)/~...一、基本概念   1、对象:属性和方法的集合,即变量和函数的封装。每个对象都有一个__proto__属性,指向这个对象构造函数的原型对象。   ...2、构造器函数:用于创建对象的函数,通过new关键字生成对象。函数名一般首字母大写的。   ...如上图,构造器函数Person(),通过new关键字创建了两个实例化对象p1、p2,这两个新对象都继承了,构造器Person()函数prototype属性所指向的原型对象。...通过构造函数创建实例对象p1和p2的时候,其中name、age、job这些是通过构造函数生成的(本地部分),sayName方法是通过继承原型对象来实现共享的(远程部分),这样多个实例对象都是由本地(私有

    1.8K70

    js构造函数

    //构造函数 //使自己的对象多次复制,同时实例根据设置的访问等级可以访问其内部的属性和方法 //当对象被实例化后,构造函数会立即执行它所包含的任何代码 function myObject(msg..., //因而实例越多占用的内存越多  } //公有方法 //适用于通过new关键字实例化的该对象的每个实例 //向prototype中添加成员将会把新方法添加到构造函数的底层中去  myObject.prototype.sayHello...;  } //静态属性 //适用于对象的特殊实例,就是作为Function对象实例的构造函数本身  myObject.name = 'china'; //静态方法  myObject.alertname...,然后在访问该类静态属性 //console.log(myObject.address); //undefined, myObject中的this指的不是函数本身,而是调用address的对象,而且只能是对象...//m1.constructor.alertname(); //china, 调用该对象构造函数(类函数)的方法(函数) //m1.sayHello(); //hello everyone, myObject

    2.7K10

    第186天:js深入理解构造函数和原型对象

    但在js中不存在类的概念,js不是基于类,而是通过构造函数(constructor)和原型链(propotype chains)实现的。...但在ES6中引入了类(class)这个概念,作为对象的模板,新的class写法知识让原型对象的写法更加清晰,这里不重点谈这个 2.首先我们来详细了解下什么是构造器   构造函数的特点:     a:构造函数的首字母必须大写...所以,缺点就是:同一个构造函数的对象实例之间无法共享属性和方法。   为了解决构造函数的这个缺点,js提供了prototype属相来解决该问题。   ...propotype属性的作用   js中每个数据类型都是对象,除了null 和 undefined,而每个对象都是继承自一个原型对象,只有null除外,它没有自己的原型对象,最终的Object的原型为null...3.了解了构造器,我们来看下原型prototype   JS中万物都是对象,但是对象也分为:普通对象和函数对象,也就是Object 和 Function.   那么怎么区分普通对象和函数对象呢?

    70320

    类和对象构造深入)

    数据成员指针 定义: 数据类型类名:: *指针名 = &类名::数据成员 解引用: 对象名.* 指针名 对象指针 ->*指针名 数据成员指针实际上是一个偏移量,区别于普通指针。...构造或析构函数定义为 private将无法在类外创建对象。 但是:构造public,析构private是可以用new创建对象的。...) swap(s1, s2); //自己定义的swap函数,没有深拷贝 cout << "=============" << endl; return 0; } <em>对象</em>移动 拷贝<em>构造</em>生成临时量大量消耗资源...右值引用:只能绑定到一个将要销毁的<em>对象</em>。因此:我们可以自由地将一个右值引用的资源“移动”到另外一个<em>对象</em>中。 左值持久,右值短暂。...由于右值引用只能绑定到临时<em>对象</em>: 1、所引用的<em>对象</em>将要被销毁; 2、该<em>对象</em>没有其他用户。 上面的2个特性意味着:使用右值引用的代码可以自由地接管所引用的<em>对象</em>的资源。

    97130

    js构造函数的理解

    此时你会发现,创建对象会变得非常方便。所以,虽然封装构造函数的过程会比较麻烦,但一旦封装成功,我们再创建对象就会变得非常轻松,这也是我们为什么要使用构造函数的原因。...在使用对象字面量创建一系列同一类型的对象时,这些对象可能具有一些相似的特征(属性)和行为(方法),此时会产生很多重复的代码,而使用构造函数就可以实现代码复用。...并且该对象继承函数的原型; 属性和方法被加入到this引用的对象中; 隐式返回this对象(如果没有显性返回其他对象) 用伪程序来展示上述变化: function Person(name){ //...{ return "I am " + this.name; } // 返回this对象 return this; } 可以看出,用new调用构造函数,最大特点为,this对象指向构造函数生成的对象...小贴士 如果指定了返回对象,那么,this对象可能被丢失。

    2.2K31

    构造函数隐式转换_构造函数实例化对象

    转载博客: http://blog.csdn.net/thefutureisour/article/details/7705771 构造函数隐式转换 构造函数会引起一个不引人注意的问题: 用单个实参来调用的构造函数定义了从从形参类型到类类型的一个隐式转换...建立一个临时的类的对象(一旦函数调用结束,就不能再放这个对象了)。...为了避免这个情况的发生,可以将类的构造函数声明为explicit: explicit Sales_item(const std::string &book = "7115145547"):isbn(book...所以对于单形参构造函数,除非有非常明显的理由让他发生隐式类型转换,否者我们应该把它设计为explicit,防止隐式转化的发生。...当然我们总可以为转化而显示的使用构造函数: trans1.same_isbn(Sales_item(null_book)); 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    39430

    ​ExcelVBA-FSO对象模型-Files属性(提取文件列表)

    ExcelVBA-FSO对象模型-Files属性(提取文件列表) ExcelVBA-FSO对象模型-Folder对象-Files属性(提出文件列表) FileSystemObjects对象模型包含了下面的对象和集合...:esystemobject主对象,包含用来创建、删除和获得有关信息,以及用来操作驱动器、文件夹和文件的方法和属性 File对象,包含用来创建、删除或移动文件的方法和属性 Files集合,提供包含在文件夹内的所有文件的列表...Files 属性 返回一个Files集合, 该集合由指定文件夹中包含的所有**File** 对象组成, 包括具有隐藏和系统文件属性集的所有对象。...**File** 对象组成 **File** 对象属性 Files 集合包含有File的所有属性 ====通过以上的学习==== 我们可以先打开对话框===取得文件夹的路径===再把路径传给Folder...对象===再收Files对象取得文件列表===由File对象读出文件路径来 【代码图片版本】 【运行取得文件夹中文件列表,不理会文件夹的】 【代码文字版本】 '打开对话框,选择文件夹,取得文件夹的路径

    1.3K20

    Java基础系列(十):对象构造

    无参构造 很多类都包含一个无参数的构造函数,对象由无参构造函数创建的时候,它的状态会被设置成适当的默认值,比如: private String name; private double salary;...,但是需要注意一点,如果类中提供了至少一个构造器,但是却没有提供无参构造,则在构造对象的时候没有提供参数就会视为不合法。...也就是说,仅仅当类没有提供任何构造器的时候,系统才会提供一个无参的构造器,如果在编写类的时候,给出了一个构造器,如果想要使用 newClassName()来构造对象,就必须提供一个默认的构造器(即不带参数的构造器...采用着这种方式使用this关键字很有用,这样对公共的构造器代码部分只编写一次即可。 初始化块 在一个类的声明中,可以包含多个代码块。只要构造类的对象,这些块就会被执行。...,id域都在对象初始化块中被初始化,首先运行初始化块,然后才运行构造器的主体部分。

    38820

    JS对象

    概述 JavaScript中: js中的对象就是生活中对象的一个抽象, 没有特征和行为,取而代之的是有对应的属性和方法; var stu = { name : '张三',...,,其实地方使用没有意义 Object构造函数 使用构造函数创建对象使用最多,其语法就是使用关键字new来创建一个对象 var p = new Object(); // 创建一个空的对象...,类型是Student 2.new 会让this指向这个新的对象 3.执行构造函数 目的:给这个新对象加属性和方法 4.new会返回这个新对象 自定义构造函数总结: 1.建议构造函数首字母要大写...2.构造函数要和new一起使用才有意义。 3.构造函数的作用是用于实例化一个对象,即给对象添加属性和方法。...// 结构 : Object.keys(对象) Object.keys(obj) 值类型与引用类型 JS数据类型 简单数据类型:number、string、boolean、undefined

    11.5K72

    【JavaScript】内置对象 - Date 日期对象 ① ( Date 对象简介 | 使用构造函数创建 Date 对象 | 构造函数参数为时间戳 | 构造函数参数为空 | 构造函数参数为字符串 )

    , 如 : 获取当前日期和时间 设置日期和时间 比较日期和时间 等操作 ; 2、创建 Date 对象 Math 对象不需要手动调用构造函数 , 可以直接使用 ; Date 对象 只能 通过调用 Date...构造函数 进行实例化 , 调用 Date() 构造函数时 , 必须使用 new 操作符 进行调用 ; 创建的 Date 对象 , 可以用来创建日期和时间的实例 , 或者表示特定的时间点 ; 创建 Date...hours [, minutes [, seconds [, milliseconds]]]]]); 二、使用构造函数创建 Date 对象 1、构造函数参数为空 使用 new Date(); 构造函数...创建 Date 对象 , 该构造函数中没有参数 , 则会返回当前的时间 ; 代码示例 : // 创建 Date 内置对象 var date = new Date();...(date); 执行结果 ; 2、构造函数参数为时间戳 使用 new Date(value); 构造函数 创建 Date 对象 , 传入的参数是 一个 Unix 时间戳 Unix Time Stamp

    31510

    【Flutter】Dart 面向对象 ( 命名构造方法 | 工厂构造方法 | 命名工厂构造方法 )

    文章目录 一、 命名构造方法 二、 工厂构造方法 三、 命名工厂构造方法 四、 相关资源 一、 命名构造方法 ---- 命名构造方法 : 定义格式 : 类名.方法名() Student.cover(Student...student):super(student.name, student.age); 父类构造函数 : 如果父类没有默认构造函数, 子类必须调用父类的构造函数 ; 方法体 : 命名构造方法与普通构造函数一样...-- 工厂构造方法就是 单例模式 , 工厂构造方法作用是返回之前已经创建的对象 , 之前创建对象时需要缓存下来 ; 工厂构造方法规则 : 在构造方法前添加 factory 关键字 ; 定义了工厂构造方法的类...: // 使用工厂构造方法实现单例模式 // 工厂构造方法就是单例模式 // 工厂构造方法作用是返回之前已经创建的对象 , 之前创建对象时需要缓存下来 ; class Student2{ // 静态成员...Student2 对象 instace = Student2.init(); } // 返回单例对象 return instace; } // 命名构造方法

    95000
    领券