原生Javascript(对象 函数 )—2_Sander_2020的博客—CSDN博客

本文探讨JavaScript中的对象和函数。对象作为一种引用类型,是类的实例,具备自身类的属性和方法,可以通过多种方式创建。函数是语言核心,用于封装语句并可在任何地方调用。函数声明、参数、返回值以及在作用域中的行为都被详细阐述,并提到了回调函数的应用。
摘要由CSDN通过智能技术生成

对象

什么是对象,其实就是一种类型,即引用类型。而对象的值就是引用类型的实例。在ECMAScript中引用类型是一种数据结构。用于将数据和功能组织在一起,它也常被称做类,但ECMAScript中却没有这种东西。虽然ECMAScript是一门面向对象的语言。却不具备传统面向对象语言所拥有的类和接口等基本结构。
万物皆对象,除了数字,字符,布尔这种绝对值以外的所有部分都是对象,对象是类的实例化体现,类是对象的抽象体现。
对象是一个个体,他具备自身类的所有属性和方法。

//对象中有属性和方法
//属性就是key对应的value是一个值
//方法就是key对应的value是一个函数

var obj ={
   
 a : 3 ,
 b: 2,
 c : functionx(){
   
   console.log("aaa");
 };
//使用JSON无法选中dui
var str = JSON.stringify(obj);
console.log(str);
//将函数转为字符串重新赋值给c属性
obj.c = obj.c.toString();
//转为JSON字符
var str = JSON.stringify(obj);
//恢复为对象
var o = JSON.parse(str);
console.log(o);
  • 对象创建
    var obj = new Object();
obj.属性=属性值
obj.方法=方法函数
obj[属性]=属性值
obj[方法]=方法函数中括号中的属性和方法必须是字符串,
如果是变量,该内容必须是字符型变量。

var obj = {};

花括号在语言中是指代码块的意思,在obj也相当于一个代码块。
obj自身在使用中可以完成和丰富各种代码块。

var obj={
 属性:属性值,
 方法:方法函数
}

在函数中,有时候需要返回一个对象,这时候,我们通常使用花括号的形式来返回对象
function abc(){
 	return {
       		 属性:属性值,
       		方法:方法函数
	 }
}
var obj= {
   };
obj.a = 1//直接描述对象下有一个a的属性值,值是1

obj["a"]= 1;//对象[字符key]=value;
//key就是属性名称,必须是字符串(ES5)

var a = "a";
obj[a]= 1;// 中括号的方式是可以带入变量作为key的,点语法不能使用变量

var  obj={
   a:1,b:2,c:3,d:{
   a:1,b:2}};
for(var prop in obj){
   
  //prop就是obj下的所有属性名key
  //每循环一次就将属性名给prop变量
 console.log(prop ,obj[prop]
}

//浅复制
var obj1 ={
   };
for(var prop in obj1){
   
 obj1[prop]=obj[prop];
}

//obj.a= 10;
//复制后切断引用关系,所以源对象属性值改变,新对象不变

obj.d.a=10;
console.log(obj1);

var obj = Object.create();

Object.create(proto, [ propertiesObject ])
proto对象原型
propertiesObject 一组属性和值,该参数对象不能是 undefined,
另外只有该对象中自身拥有的可枚举的属性才有效,
也就是说该对象的原型链上属性是无效的。
该方法可以针对已知对象创建新对象也可以创建一个空对象。
  • 对象的属性和方法

    delete

删除对象的属性
var obj={a:3,b:4}
delete obj.a;
也可以根据键值删除对象下的属性。

for in

var obj={
   a:1,b:3};
for(var str in obj){
   
 console.log(obj[str]);

函数

1. 函数基础
函数对任何语言来说都是一个核心的概念。函数,是一种封装(将一些语句,封装到函数里面)。通过函数可以封装任意多条语句,而且可以在任何地方、任何时候调用执行。ECMAScript中的函数使用function关键字来声明,后跟一组参数以及函数体,也就是包裹在花括号中的代码块,前面使用了关键词 function:当调用该函数时,会执行函数内的代码。

	 function 函数名()
    {
   
      执行代码
    }

函数声明

/*函数关键字 + 函数名 + (){
	语句
	函数体[]
}*/

//命名函数的创建
  function fn(a,b){
   
   console.log(a+b);
  }
 fn(3,4)
/* 
注:1.函数命名跟变量一样,只能是字母、数字、下划线、美元符号,不能以数字开头。和变量名相同
 2.后边()里放参数用的,参数就相当于变量,数量和名字可以自己定义
 3.函数的后面{}里面是正式函数内的所有语句块,当执行函数时,就会执行{}中的内容
 4.函数名:驼峰式命名法 ,首字母一般都是小写,如果该函数是构造函数,函数名首字母需要大写
 5.在当前函数所在script标签创建时,优先将该函数存储在堆中,并且函数名存储在栈中
 6.当前这个代码所在的script标签的上面的script的标签中任意函数和全局变量都是可调用的
 */

//匿名函数
fn();//执行会报错
var fn = function(){
   

}
//注意:代码运行到定义匿名函数后才可以调用该匿名函数

(function){
   
	//自执行函数
}();


//构造函数定义函数
//可以动态构建函数

var fn = new;
Function ("a","b",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值