JS 对象原型学习笔记function Person(name,age,sex) { this.name = name; this.age = age; this.sex =

JavaScript系列-4-函数进阶 本文作者:钟昕灵,叩丁狼高级讲师。原创文章,转载请注明出处。 作用域安全的构造函数 构造函数的调用方式存在下面两种: ​ 直接调用:普通函数 ​ 使用new一起调用:创建对象 function Person(name, age) { this.name = name; this.age = age; } console.log(Person("zs", 10));//undef... 阅读详情
function Person(name,age,sex) {
    this.name = name;
    this.age = age;
    this.sex = sex;
}
//使用原型
Person.prototype.sayName = function(){
    alert(this.name);
}
var p1 = new Person('bob',24,'男');
var p2 = new Person('mary',28,'女');
p1.sayName();//bob
p2.sayName();//mary
alert(p1.hasOwnProperty('name'));//true 给定属性存在于对象实例中时,返回true
for(var key in p1){
    console.log(key);//p1的属性名称,函数的名称
    console.log(p1[key]);//p1的属性值,函数体
}

//判断某个属性是否属于原型
function hasPropertyPrototype(object,name){
    return !object.hasOwnProperty(name) && (name in object);
}

//定义一个日期函数:返回星期几
Date.prototype.sayDay = function(){
    alert(this.getDay());
}
var dd = new Date();
dd.sayDay();

function Dog(){
    this.color = 'black';
}
var dog = new Dog();
alert(dog.color);//black
//重写原型
Dog.prototype = {
    constructor:Dog,
    name:'长江七号',
    age:11,
    sayName:function(){
        alert(this.name);
    }
};
//重写原型,切断了现有原型(Dog)与任何之前已经存在的对象实例(dog)之间的联系,它引用的仍然是最初的原型;
alert(dog.color);//black
alert(dog.name);//undefined
//dog.sayName();//会报错
var dog1 = new Dog();
alert(dog1.age);//11
alert(dog1.color);//black
dog1.sayName();//长江七号

 

 

解释一下 function Person(){}、var person = Person() 和 var person = new Person() 之间的区别 这种方式调用 Person 函数,并将返回值赋给变量 person。,则会返回函数内部的 this 对象。这种方式使用 new 关键字来调用 Person 函数,从而创建一个新的 Person 对象实例。在构造函数内部,this 关键字指向新创建的对象实例。使用 new 关键字创建对象实例是 JavaScript 中最常见的做法,它可以确保每次创建一个全新的对象,并且对象的属性和方法都是独立的。这种方式定义了一个名为 Person 的函数,它可以用作构造函数来创建新的对象实例。 阅读详情

相关推荐

DC综合中set_dft_signal的实战配置与优化策略

本文深入解析了DC综合中set_dft_signal命令的实战配置与优化策略。文章从命令的核心作用出发,详细拆解了-view、-type、-usage等关键参数,并通过扫描使能与时钟门控的实战案例,展示了如何正确配置以实现测试模式下的功耗优化。同时,文章总结了高级优化策略、与低功耗流程的协同方法以及常见错误排查清单,旨在帮助数字芯片设计工程师构建高可测性、低功耗的稳健DFT基础。

weixin_28347369的博客 403

使用构造函数创建对象

使用构造函数创建对象 js function Person(name ,age ,sex) { this.name = name; this.age = age; this.sex = sex; this.sayname = function() { alert(name); } } var per = new Person("张三",16,"男"); var per2 = new Person(

Czc1357618897的博客 587

D2D与C2C高速互联技术对比:从封装到性能的全面解析

本文全面解析了Die-to-Die(D2D)与Chip-to-Chip(C2C)高速互联技术的差异,从封装形式、传输距离到性能指标进行深度对比。D2D技术在带宽、延迟和能效方面具有显著优势,适用于高性能计算和AI加速;而C2C技术则更适合车载电子系统等长距离传输场景。文章还探讨了UCIe标准化趋势,并提供了技术选型的实用建议。

weixin_29197051的博客 551

JavaScript语法讲解

javascript数据类型和变量 js是弱类型语言,支持变量声明,存在作用范围,有局部变量和全局变量之分。 1.定义变量 隐式定义:直接给变量赋值; 现实定义:使用var关键字定义变量。 隐式定义: <script type="text/javascript"> a="See me"; alert(a); </script> 显示定义: <...

weixin_45360456的博客 388

AI智能体升级实战:从规则匹配到Function Call,准确率提升86%的技术选型之路

AI智能体升级实战:从规则匹配到Function Call的技术演进 文章记录了AI邮件助手从传统规则匹配升级到Function Call的技术迭代过程。通过案例分析,揭示了规则匹配的三大核心问题:覆盖不全(用户表达千变万化)、组合困难(多条件容易漏掉)、维护噩梦(每个需求都要新增规则)。测试数据显示,规则匹配在复杂查询中的准确率仅51%,严重影响用户体验。 技术团队对比了三种升级方案:1) 继续优化规则匹配(天花板明显);2) 微调专用NLP模型(成本高);3) 采用Function Call(灵活高效)

yweng18的博客 1078

非凸问题的求解方法以及连续凸逼近SCA(Successive Convex Approximation)方法

非凸问题的求解方法 针对形如下式的函数: min⁡x∈XV(x)=F(x)+G(x)\min\limits_{{\bf{x}}\in X} V(x)=F(x)+G(x)x∈Xmin​V(x)=F(x)+G(x); 其中F为光滑的(不一定convex),G是convex的但是可能不可微,且存在:对于n维实矢量空间,有X=X1×...×XNX=X_1 \times...\times X_NX=X1​×...×XN​; x=(x1,...,xN)\bf{x} =(x_1,...,x_N)x=(x1​,...,xN

weixin_44535200的博客 2万+

JavaScript中的一等公民: 函数(Function)

函数的基础使用使用函数表达式或者函数声明去创建一个函数函数声明整体提升,函数表达式只提升变量匿名函数构造函数构造函数返回一个对象,使用new操作符执行构造函数构造函数执行的过程:1. 生成一个对象将this绑定到这个对象 2. 执行构造函数的代码 3.返回结果构造函数默认返回一个对象,手动返回应用类型的数据将代替默认的返回结果闭包闭包产生的三个条件:1. 函数嵌套 2.内部函数使用了外部函数作用域内的变量 3.被返回的内部函数在外部作用域有被引用。

qq_44621394的博客 655

从0开始,部署micro_ros+stm32f407+stm32cubeIDE

(5)安装依赖项rosdep时,必须处于创建的microros_ws中,因为里面有clone的src文件夹。(3)教程a中的安装docker不是必须的,取决于运行agent时是否想使用docker。(4)记得安装rosdep,并在以后的命令中将rosdep替换为rosdepc。4、运行agent,选择udp、tcp、can、串口,这里没有使用docker。(1)首先参考教程a安装虚拟机和ubuntu,注意版本选择22.04;(2)参考教程b部署micro_ros构建系统。二、安装和运行agent。

m0_37963053的博客 2234

由一道小题谈谈JS的new操作符

今天碰到一个题,感觉还是有一定的迷惑性的。而这也正说明一点,有时候形成的惯性思维很要命,特别是遇到小的知识点的时候。不多说,先来看看这道题: 运行这段代码之后,“mike”的值是什么? function Person(name, age){ this.name = name; this.age = parseInt(age,10); ...

323

在 SAP BTP 中为 SAP AI Core 创建 Service Instance 和 Service Key 的完整实战指南

摘要:本文详细介绍了在SAP BTP上创建AI Core服务实例和密钥的关键步骤,这是实现ABAP系统与Gen AI大语言模型集成的核心技术环节。文章通过一个制造业财务问答场景的案例,系统梳理了从前提条件准备、架构理解到具体操作的全过程,重点解析了service instance创建、X.509证书配置等关键节点。特别强调了Extended计划选择、证书格式等易错点,为ABAP开发人员实现Gen AI场景提供了实用指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 271

Autosar Configuration(十四)SomeIP之配置SoAd

本文主要介绍SomeIp协议栈中的SoAd在Configurator中的详细配置

king110108的专栏 2600

你分得清:function Person(){}、var person = Person()和var person = new Person()吗?

不同于普通的函数,使用PascalCase(首字母大写)来命名函数通常是一种约定,表明该函数是一个构造函数,用于创建对象的实例。但需要注意的是,仅仅这个声明并不会创建任何对象实例,它只是一个函数定义。我们将从基础开始,逐步分析它们,以便您能够更好地掌握JavaScript中的构造函数和对象创建的关键概念。如果您将方法添加到构造函数的原型中,所有由该构造函数创建的对象都将共享相同的方法,从而减少内存占用。例如,如果您错误地将构造函数用作普通函数调用,可能会遇到未定义的行为,因为构造函数通常不返回值。

Web面试那些事儿的博客 1349

优快云独家 | 全网首发 | 《目标检测蓝皮书》目录

10篇文章从目标检测小白变大神

Coding... 3万+

JS学习笔记 构造函数和实例对象之间的关系

自定义构造函数function Person(name,age,sex){ this.name=name; this.age=age; this.sex=sex; }实例对象实例对象的构造器是指向Person 的,结果是true,所以,这个实例对象per就是通过Person来创建的var per=new Person("小红",21,"男"...

倪晓磊的博客 888

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

vue学习笔记(六)模版语法5

vue实现列表过滤与排序

qq_45396272的博客 205

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Javascript 学习 -- 函数传值

函数传值: function person(name, age){     this.name=name;     this.age = age; } var p1 = new person('theo', 23); var p2 = new person('shonw', 31); var p3 = new person('david', 39); var p = [p1,p

lancer202的专栏 454

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

js-day01-js语言基础

JavaScript简介:JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。Node.js。 在1995年时,由Netscape公司的Brendan Eich,在网景导...

399

继承的进阶

继承的进阶:如何实现new、apply、call、bind的底层逻辑 首先我们从new开始,new关键词的主要作用是什么呢? 就是执行一个构造函数,返回一个实例对象根据构造函数的情况,来确定是否可以接受参数的传递。代码实现如下: function Person(){ this.name = 'jack'; } var p = new Person(); console.log(p.name)//jack 上述代码是p通过person这个构造函数实现的一个实例对象 那么new在底层逻辑中是如何实现的呢? 1

sharp0016的博客 164

JS面向对象

目录 一、构造函数 二、对象成员 2.1、实例成员 2.2、静态成员 三、instanceof 四、constructor 五、原型对象 5.1、原型关系 5.2、原型属性 5.3、原型链 5.4、原型总结 六、对象创建 6.1、对象字面量创建 6.1.1、new构造函数创建 6.1.2、字面量创建 6.1.3、create创建 6.2、工厂模式 6.3、构造函数模式 6.4 构造函数拓展模式 6.5 寄生构造函数模式 6.6、稳妥构造函数模式 6.7、原型模式

mengfanshaoxia的博客 1388

原型及原型链

首先,为什么需要原型及原型链? 我们查看一个例子: function Person(name, age) { this.name = name; this.age = age; this.eat = function() { console.log(age + "岁的" + name + "在吃饭。"); } } let p1 = new Person("jsliang", 24); let p2 = new Person("jsliang", 24); console.l

weixin_40579884的博客 260

JavaScript构造函数与原型对象

JavaScript构造函数与原型对象1 构造函数1.1 概述1.2 静态成员和实例成员1.3 构造函数和类的区别1.4 构造函数与普通函数的区别2 原型对象2.1 概述2.2 访问对象的原型对象2.3 访问对象的构造函数2.4 原型对象的原型对象2.5 原型链2.6 函数在原型链中的结构2.7 成员查找机制2.8 原型对象的this指向 1 构造函数 1.1 概述 在面向对象的语言中,都存在类的概念,类就是对象的模板,对象就是类的实例,但在ES6之前,JavaScript中并没有引入类的概念。 在ES6之

橘猫吃不胖的博客 950

腾讯前端面试题(一)

一. 有一个类如下: function Person(name) { this.name = name } let p = new Person('Tom'); 1. p._proto_等于什么? 答案:Person.prototype 2. Person._proto_等于什么? 答案:Function.prototype 解析: 1,2两个是同一个问题,都是考察原型链...

卡卡西:一个擅长拷贝的前端程序员 1670

js高级 -01

1.构造函数和原型 1.1对象的三种创建方式--复习 1. 字面量方式 var obj = {}; 2. new关键字 var obj = new Object(); 3. 构造函数方式 function Person(name,age){ this.name = name; this.age = age; } var obj = new Person('zs',12); 1.2...

Sole_Memory1的博客 278

dart-3-dart语言

flutter

qq_27909209的博客 980

每日一题:1.function Person(firstName, lastName) { this.firstName = firstName; this.lastName = lastNa

Question:如下输出什么? function Person(firstName, lastName) { this.firstName = firstName; this.lastName = lastName; } const member = new Person('Lydia', 'Hallie'); Person.getFullName = function() { return `${this.firstName} ${this.lastName}`; }; consol

卡卡西:一个擅长拷贝的前端程序员 1203

JavaScript面试题

JavaScript (1)JS中的对象是什么? JavaScript 中的所有事物都是对象:字符串、数字、数组、日期等等。 (2)JS的对象和Java,C#中的对象有什么区别? java是面向对象的,也就是有继承,封装,多态。 js是基于对象的,就是没有上述三点。js的继承等是通过原型链或其他方法进行实现的,ECMAscript6的class(类)本质上还是对象,与java的class(类)是不同的。java的类是不可以直接运行的。js的对象是可以直接调用运行的。 (3)JS如何创建对象?(你有哪些方法)

m0_51520593的博客 250
上一篇: JS 数组的迭代方法
下一篇: vue create报错解决方法
^^_candice
博客等级 码龄10年 3粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值