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

与原型函数和正常函数的输出不同

,指的是在JavaScript中,原型函数和正常函数在输出上存在一些差异。

原型函数是通过原型对象创建的函数,它们通常用于创建对象的实例方法。原型函数的输出是通过对象实例访问的,而不是直接调用函数本身。当对象实例调用原型函数时,函数内部的this指向调用该函数的对象实例。

正常函数是直接定义在全局作用域或其他作用域中的函数,它们可以通过函数名直接调用。正常函数的输出是函数执行后的返回值。

下面是对原型函数和正常函数输出不同的详细解释:

  1. 原型函数的输出:
    • 原型函数的输出是通过对象实例访问的,通常是通过对象实例调用函数来获取输出结果。
    • 原型函数内部的this指向调用该函数的对象实例,可以在函数内部访问和操作对象实例的属性和方法。
    • 原型函数的输出通常是与对象实例相关的,可以根据对象实例的状态和属性进行计算和返回。
  • 正常函数的输出:
    • 正常函数的输出是通过函数名直接调用函数后获取的返回值。
    • 正常函数内部的this指向调用函数的上下文,如果函数是在全局作用域中定义的,则this指向全局对象(在浏览器中是window对象)。
    • 正常函数的输出可以是任意类型的值,包括基本数据类型(如数字、字符串、布尔值)和复杂数据类型(如对象、数组)。

在实际应用中,原型函数和正常函数有不同的应用场景和优势:

  • 原型函数的应用场景:
    • 原型函数通常用于创建对象的实例方法,可以将公共的行为和功能封装在原型函数中,实现代码的复用和模块化。
    • 原型函数的优势在于可以通过对象实例共享函数的定义,减少内存占用。
    • 腾讯云相关产品和产品介绍链接地址:暂无推荐的腾讯云相关产品。
  • 正常函数的应用场景:
    • 正常函数可以直接调用,适用于独立的功能和操作,不依赖于对象实例。
    • 正常函数的优势在于可以灵活地传递参数和返回结果,可以用于实现各种算法、逻辑和业务流程。
    • 腾讯云相关产品和产品介绍链接地址:暂无推荐的腾讯云相关产品。

总结:与原型函数和正常函数的输出不同,原型函数的输出是通过对象实例访问的,正常函数的输出是通过函数名直接调用后获取的返回值。它们在应用场景和优势上有所差异,可以根据具体需求选择使用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

构造函数和原型

1.构造函数和原型 1.1对象的三种创建方式--复习 字面量方式 var obj = {}; new关键字 var obj = new Object(); 构造函数方式...对象都会有一个属性 __proto__ 指向构造函数的 prototype 原型对象,之所以我们对象可以使用构造函数 prototype 原型对象的属性和方法,就是因为对象有 __proto__ 原型的存在...__proto__对象原型和原型对象 prototype 是等价的 __proto__对象原型的意义就在于为对象的查找机制提供一个方向,或者说一条路线,但是它是一个非标准属性,因此实际开发中,不可以使用这个属性...1.8构造函数实例和原型对象三角关系 1.构造函数的prototype属性指向了构造函数原型对象 2.实例对象是由构造函数创建的,实例对象的__proto__属性指向了构造函数的原型对象 3.构造函数的原型对象的...this指向 构造函数中的this和原型对象的this,都指向我们new出来的实例对象 function Star(uname, age) { this.uname = uname; this.age

36210
  • 构造函数和原型

    ,即为对象成员变量赋初始值,它总与new一起使用。...静态成员和实例成员 JavaScript的构造函数中可以添加一些成员,可以在构造函数本身上添加,也可以在构造函数内部的this.上添 加。通过这两种方式添加的成员,就分别称为静态成员和实例成员。...5.对象原型 对象都会有一个属性 __proto__ 指向构造函数的 prototype 原型对象,之所以我们对象可以使用构造函数 prototype 原型对象的属性和方法, 就是因为对象有 __proto...构造函数实例和原型对象三角关系 1.构造函数的prototype属性指向了构造函数原型对象 2.实例对象是由构造函数创建的,实例对象的__proto__属性指向了构造函数的原型对象 3.构造函数的原型对象的...10.原型对象中this指向 构造函数中的this和原型对象的this,都指向我们new出来的实例对象 function Star(uname, age) {    this.uname = uname

    48450

    6.3 被调用函数的声明和函数原型

    为了让大家有个明确的学习方向,请大家分享给有需要的人,谢谢!...一、被调用函数需要具备的条件 (1)首先被调用的函数必须是已经定义的函数(是库函数或者用户自己定义的函数) (2)如果使用库函数,应该在本文件开头用#include指令将调用有关库函数时所需用到的信...息“包含”到本文件中来 (3)如果使用用户自己定义的函数,而该函数的位置在调用它的函数的后面,应该在主调函 数中对被调函数作声明 二、函数声明 一般形式 (1)函数类型 函数名(参数类型...1 参数名1,参数类型2 参数名2,...参数类型n 参数名n) (2)函数类型 函数名(参数类型1,参数类型2,...参数类型n) 注意:如果已在文件的开头(在所有函数之前),已经对本文件中所调用的函数进行了声...明,则在个函数中不必对其所调用的函数再作声明 原创不易,未经本公众号允许禁止转载,否则追究法律责任

    1.3K3229

    JS高级——构造函数和原型

    通过这俩种方式添加的成员,就分别称为静态成员和实例成员。 静态成员:在构造函数本身上添加的成员称为静态成员,只能由构造函数本身来访问。...共享方法 对象原型 proto 对象都会有一个属性 __proto__指向构造函数的prototype原型对象,之所以我们对象可以使用构造函数prototype原型对象的属性和方法,就是因为对象有 __...proto__原型的存在 __proto__对象原型和原型对象 prototype是等阶的。...constructor 构造函数 对象原型(__proto__)和构造函数(prototype)原型对象里面都有一个属性 constructor属性,constructor我们称为构造函数,因为它指回构造函数本身...ldh 扩展内置对象 可以通过原型对象,对原来的内置对象进行扩展自定义的方法,比如给数组增加自定义求偶数和的功能。

    1.5K10

    「JS高级」构造函数和原型

    1.构造函数和原型1.1对象的三种创建方式--复习1、... 请注意,本文编写于 2063 天前,最后修改于 173 天前,其中某些信息可能已经过时。...__proto__ 指向构造函数的 prototype 原型对象,之所以我们对象可以使用构造函数 prototype 原型对象的属性和方法,就是因为对象有 __proto__ 原型的存在。...因为有__proto__ 的存在,就去构造函数原型对象prototype身上去查找sing这个方法 1.6constructor构造函数 对象原型( __proto__)和构造函数(prototype)...1.8构造函数实例和原型对象三角关系 构造函数的prototype属性指向了构造函数原型对象; 实例对象是由构造函数创建的,实例对象的__proto__属性指向了构造函数的原型对象; 构造函数的原型对象的...1.10原型对象中this指向 构造函数中的this和原型对象的this,都指向我们new出来的实例对象: function Star(uname, age) { this.uname = uname

    1.5K50

    基础 | 详解面向对象、构造函数、原型与原型链

    1、与普通函数相比,构造函数并没有任何特别的地方,首字母大写只是我们约定的小规定,用于区分普通函数; 2、new关键字让构造函数具有了与普通函数不同的许多特点,而new的过程中,执行了如下过程: a)声明一个中间对象...当我们在创建对象时,可以根据自己的需求,选择性的将一些属性和方法通过prototype属性,挂载在原型对象上。...因此,当所有的实例都能够通过__proto__访问到原型对象时,原型对象的方法与属性就变成了共有方法与属性。 我们通过一个简单的例子与图示,来了解构造函数,实例与原型三者之间的关系。...而通过原型声明的属性与方法,我们可以称之为共有属性与方法,它们可以被所有的实例对象访问。 当我们访问实例对象中的属性或者方法时,会优先访问实例对象自身的属性和方法。...五、继承 我们常常结合构造函数与原型来创建一个对象。因为构造函数与原型的不同特性,分别解决了我们不同的困扰。因此当我们想要实现继承时,就必须得根据构造函数与原型的不同而采取不同的策略。

    41710

    理解构造函数与原型对象

    ,而方法对应的就是类中的成员方法,这是传统oop语言的描述,然而在javascript中,虽没有类的概念,但是它往往是通过构造函数和原型对象来给对象模拟与类相似的功能,但是这些相似的功能并不一定表现的与类完全一致...越来越像后端语言,Es6,Es7新增的诸多方法也越来越强大,但是我觉得理解构造函数与原型对象还是有必要的,是js面向对象编程的基础,今天就我的学习和使用跟大家分享一下学习心得,初学者学习笔记心得,欢迎路过的老师多提意见和指正...解决办法2利用原型正好解决实例化多个对象时,避免构造函数内的方法重复创建(如后面的示例代码所示) 普通函数与构造函数的区别 有new与无new的差别 写法上,构造函数首字母大写(目的只是用于区分普通函数与构造函数...",AddResult(arr1)); // 数组arr1和为55 console.log("数组arr2和为",AddResult(arr2)); // 数组arr2和为72 区分构造函数自定义属性与原型属性...从上结果中可以得出:当构造函数自定义的属性名与该构造函数下原型属性名相同时,构造函数的自定义属性优先于原型属性(可以把构造函数理解为内联样式),而原型属性或者原型方法可以看做是class) 小结:构造函数就是用

    1.1K40

    JavaScript笔记(2) 构造函数和原型

    构造函数和原型 目标: 这些之前都学过的我就不多赘述了,直接将图片贴上来了 JavaScript的构造函数中可以添加一些成员,可以在构造函数本身上添加,也可以在构造函数内部的this上添加....,而且这两个方法指向的是不同的地址,这十分不合理,我们希望的是所有对象都使用的是同一个函数,那么要怎么做呢?...没使用原型对象之前: 因为两个对象指向的函数是不同的地址,所以是false....对象原型__proto__ 对象都会有一个属性__proto__指向构造函数的prototype原型对象,之所以我们对象可以使用构造函数prototype原型对象的属性和方法,就是因为对象有__proto...constructor构造函数 对象原型和构造函数的原型对象里面都有一个属性constructor属性,constructor我们称为构造函数,因为它指回构造函数本身 如果我们直接打印Star.prototype.constructor

    39010

    原型链中的函数和对象

    proto__)等于构造这个对象的构造函数的显式原型(prototype) 确实,所有对象都符合这句真理,在控制台打印一试便知: const str = new String("123") str....__proto__ === Object.prototype // true Function 这个终极构造函数,通过查找显式原型的隐式原型,竟然等于 Object 的显式原型!...__proto__=== Object.prototype // true 所有构造函数的显式原型的隐式原型 等于 Object 的显式原型!! ---- 理解 为什么要这样设定呢??...; 这些不同种类的物质,再一代一代延续(繁衍)下去。。。。。。...觉得不错点个赞吧,您的鼓励,我的动力,坚持原创质量好文~~ 欢迎评论留言 我是掘金安东尼,输出暴露输入,技术洞见生活。再会吧~~

    40010

    JS中函数声明与函数表达式的不同

    Js中的函数声明是指下面的形式: function functionName(){ }         这样的方式来声明一个函数,而函数表达式则是类似表达式那样来声明一个函数,如: var functionName...= function(){ }         可能很多朋友在看到这两一种写法时会产生疑惑,这两种写法差不多,在应用中貌似也都是可行的,那他们有什么差别呢?       ...事实上,js的解析器对函数声明与函数表达式并不是一视同仁地对待的。...对于函数声明,js解析器会优先读取,确保在所有代码执行之前声明已经被解析,而函数表达式,如同定义其它基本类型的变量一样,只在执行到某一句时也会对其进行解析,所以在实际中,它们还是会有差异的,具体表现在,...当使用函数声明的形式来定义函数时,可将调用语句写在函数声明之前,而后者,这样做的话会报错。

    1.4K20

    再谈构造函数、原型、原型链之间的关系

    前言 构造函数、原型、原型链作为ES5的内容,已经是老生常谈的问题了。首先说说为什么要再次拿起这个话题去说呢?...,在JS规定,每一个构造函数都有一个 prototype 属性,指向另一个对象,注意这个prototype就是一个对象,这个对象的所有属性和方法都会被构造函数所拥有。...原型的作用是共享方法,一般情况下,我们的公共属性定义在构造函数里面,公共的方法放到原型对象上。...call和apply会立刻执行,bind调用函数时才会执行。call和bind第一个参数传入的是对象或者null或者不传,后面参数是字符串。...__proto__);//null 参考资料 [1]原型与原型链详解: https://www.jianshu.com/p/ddaa5179cda6 [2]Object.setPrototypeOf:

    70920

    Prin()输出函数和使用方法

    我们在之前的文章中我们用的最多的就是print()这个函数来打印一些数据,这就是我们今天要讲的输出语句,通过print()不仅可以输出变量,还有很多其他功能。下面就来详细讲解一下。...一、print()函数的构造 def print(self, *args, sep=' ', end='\n', file=None): # known special case of print "...flush: whether to forcibly flush the stream. """ pass 通过上面的构造函数我们可以看出来,这个函数可以传入多个值,并且自带空格隔开每个变量,另外结尾会自带一个换行...a, e)print(c) 返回结果: python自学网python自学网python自学网 python python自学网 大家可以看出来两行打印代码会自动换行,我们也可以通过其他方法自定义结尾的格式...e = 'python'print(c*a, e, end="")print(c) 返回结果:python自学网python自学网python自学网 pythonpython自学网 二、print()函数格式化输出

    74110

    JavaScript原型链继承与盗用构造函数继承

    原型链继承 原型链继承是js中的主要继承方式,它的基本思想就是通过原型继承多个引用类型的属性和方法。...这个赋值重新更改了SUbType的最初原型,替换成了SuperType实例。这样意味着SuperType实例可以访问所有的属性和方法也存在与SubType.protoype。...这样一来,SubType 的实例不仅能从 SuperType 的实例中继承属性和方法,而且还与 SuperType 的原型挂上了钩。...所有输出的是true。 原型链的搜索机制就是在读取实例上的属性时,首先在自身的实例上进行搜索,如果没找到,就会通过继承的方式继续搜索,搜索是向上的。...对于属性和方法一直会持续到原型链末端 原型链虽然是比较强大的继承实现工具,但是它里面所有的引用值都是实例间共享的,而且子类不能向父类传参,一般原型链也不会被单独使用,我们可以通过盗用构造函数配合来解决这些问题

    41020

    【JS精粹】原型链继承和构造函数继承的 “毛病”

    因为这门语言设计就是这样,我们之前也提过:JavaScript的语言设计主要受到了Self(一种基于原型的编程语言)和 Scheme(一门函数式编程语言)的影响; 它复用的能力就是来自原型!...其基本思想就是通过原型继承多个引用类型的属性和方法。...原型链中的函数和对象》 这里还是用代码展示下它们的指向关系吧: 上面例子中有 1 个对象 instance , 两个函数,SuperType 和 SubType 。函数是上帝,对象是基本物质。...let s1 = new SubType() let s2 = new SubType() console.log(s1.fn === s2.fn) // true 所以,综上,原型链继承和构造函数继承的...思路是:使用原型链继承原型上的属性和方法,而通过构造函数继承实例属性。

    1.3K20

    python之 print()函数的输出学问(函数解析以及格式化输出)

    print("Hello World") 其实print函数的用途不止这些,输出也并不是只有有这样单调 那么具体的根源,我们就看这个函数完整的形式喽!...flush:代表了刷新方式(具体的我们在后面代码中说明) 1:对sep参数的解析 #values就不做过多的说明了,我们直接从step开始 print("你好","世界",sep="--");#前面的逗号分隔决定了你好和世界是两个字符串...输出结果如下: 还有一点说明,看代码 print("你好"+"世界",sep=",")#与上面的对比输出区分 输出结果如下: 可见并没有对你好世界进行分割,这样的原因是以加号进行的前面...4格式化输出format占位格式 这边我们进行整体输出对比即可,然后我会对疑点进行说明 {} 与format() 函数进行配合,起到占位的作用,具体格式以及输出样子看代码 print("my name...()函数的解析就到这里,我们常用的就是这些,当然还有其它的输出函数形式。

    66420

    Javascript 原型链之原型对象、实例和构造函数三者之间的关系

    2017-10-13 10:14:59 首先来说一下名词解释,首先说一下prototype,每个函数都有一个prototype属性,这个属性是指向一个对象的引用,这个对象称为原型对象,原型对象包含函数实例共享的方法和属性...,也就是说将函数用作构造函数调用(使用new操作符调用)的时候,新创建的对象会从原型对象上继承属性和方法。...并且可以发现,这个原型对象包含两个部分(constructor 和 __proto__)其中constructor指向函数自身。...当我们将该函数作为模版创建实例(new方法)的时候,我们发现创建出的实例是一个与构造函数同名的object,这个object是独立的,他只包含了一个__proto__指针(实例没有prototype,强行访问则会输出...undefined),这个指针指向上面提到的构造函数的prototype原型对象。

    63910

    详解js原型,构造函数以及class之间的原型关系

    原型 概念 在构造函数创建的时候,系统默认的帮构造函数创建并关联一个对象 这个对象就是原型 作用 在原型中的所有属性和方法,都可以被和其关联的构造函数创建出来的所有的对象共享 访问原型 构造函数名...(一级一级传递 形成了原型链) 替换原型对象的时候,替换之前构造函数创建的对象A和替换之后创建的对象B,A和B的原型是不一致的。...对象能够访问的原型,就是在对象创建的那一刻,和构造函数关联的那个原型 扩展以及延伸 ?...如果方法在构造函数内部,每次new一个实例对象的时候,都会创建内部的这些方法,并且不同的实例对象之间,不能共享这些方法,造成了资源的浪费(于是有了原型这个概念) 实现方式 (简单列举几种) 构造函数模式...函数相当于ES5中的构造函数(声明属性以及静态方法,这种类创建属性和创建方法参照上面动态原型模式的构造函数。

    1.6K20

    MS SQL Server partition by 函数实战 统计与输出

    需求 假设有一课程项目,我们需要统计该项目中的课件数量,并提取课程信息,如课程标题名称、排序号等,如果使用 GROUP BY 聚合函数,则只能统计返回课件项目及对应的课件数量一条记录,无法显示明细信息,...对于终端想要进行输出的话,此时 partition by 就派上用场了。...输出如下图: 在管理心理学项目里包括若干课程,我们将根据排序号进行分类输出,显示课程的明细内容并继续其它业务操作。...; 小结 partition by 的聚合统计和使用还有很多种,如下表: 序号 统计项 说明 1 row_number() 记录总排序号 2 rank() 排序,有并列则按总数递增,如两个第1后是第3...对结果数据的前端输出这里不再详述,需要根据数据的结构以满足我们的设计输出。 感谢您的阅读,希望本文能够对您有所帮助。

    10410
    领券