首页
学习
活动
专区
工具
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

34110

构造函数原型

,即为对象成员变量赋初始值,它总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

46350

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

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

1.3K3229

php输出控制函数输出函数生成静态页面

本文实例为大家分享了php输出控制函数输出函数生成静态页面的具体代码,供大家参考,具体内容如下 Output Control 函数详解: flush – 刷新输出缓冲 ob_clean – 清空输出缓冲区...如果有多重输出回调函数是活跃输出内容会一直按嵌套顺序依次通过它们而被过滤。 flush 刷新PHP程序缓冲,该函数将当前为止程序所有输出发送到用户浏览器。...flush() 函数不会对服务器或客户端浏览器缓存模式产生影响。 因此,必须同时使用 ob_flush() flush() 函数来刷新输出缓冲。...ob_get_flush 输出缓冲区内容(以字符串形式返回),并关闭输出缓冲区,ob_end_flush()不同是本函数还会以字符串形式返回缓冲区内容。...ob_clean 清空输出缓冲区, 此函数用来丢弃输出缓冲区内容 此函数不会像 ob_end_clean() 函数那样销毁输出缓冲区。

2.5K20

JS高级——构造函数原型

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

1.4K10

「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__访问到原型对象时,原型对象方法属性就变成了共有方法属性。 我们通过一个简单例子图示,来了解构造函数,实例原型三者之间关系。...而通过原型声明属性方法,我们可以称之为共有属性方法,它们可以被所有的实例对象访问。 当我们访问实例对象中属性或者方法时,会优先访问实例对象自身属性方法。...五、继承 我们常常结合构造函数原型来创建一个对象。因为构造函数原型不同特性,分别解决了我们不同困扰。因此当我们想要实现继承时,就必须得根据构造函数原型不同而采取不同策略。

37410

理解构造函数原型对象

,而方法对应就是类中成员方法,这是传统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

36810

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

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

1.4K20

原型链中函数对象

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

38110

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

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

67020

printf函数输出文字计算

printf函数输出文字 #include int main() { pritntf("Hello World!...\n"); return 0; } ""里面的内容叫做"字符串",printf会将其中内容原封不动输出在终端上 "\n"表示换行 printf输入文子可以不加\n ";"表示这一个语句结束...改成你想要输出文字(可中文) 例:printf("刘胜男大傻吊"); 如示例:cmd终端会显示刘胜男大傻吊,若想要写两行(分别两行)那么在\n后面再加上刘胜男是我好大儿 ab3ae1eb09abadebc7c2d6d17a30b08c-e1631941859650...刘胜男大傻吊 ( 终端显示结果 ) 3621d0874d8b5840dea480b2ed6c17f8-1-e1631942304391.png (分行输入,如若不想分行则不加\n) printf函数做算术输出...不加","逗号后面的式子不会运算,而"%d"代表是要有整数输出在"%d"位置上,所以不加","这个代码就会编译出错!! 既然能算加法能不能算其他算法呢?当然能!

1.7K20

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()函数格式化输出

64410

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

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

39120

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

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

1.2K20

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

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

60120

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

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

61910
领券