js 删除对象属性_原创干货:JS学习口诀分享(V)

7a691048a26f3c8036fddd9fc22ceb05.png

哈喽大家好!

今天小渡又双叒叕带着满满的干货来啦!

在前四次的JS口诀分享中,小渡已经带大家积累了16条JS口诀,内容涵盖js条件语句、switch、js函数声明等多种知识点。

那么本期【JS学习口诀】第五弹,将为大家介绍JS闭包、JS作用域链等更加简单实用的知识点口诀。

小渡话不多说,一起来学习今天的口诀吧~

6c09a7a90f120dfb06b426e3af472852.gif

17 作用域链

一但函数被定义,默认属性作用域。

存储运行上下文,链头全局未运行。

函数执行 AO存,执行完毕即无痕。

函数中间套函数,外层链条接内部。

一但函数被定义,默认属性作用域。

一旦函数被定义出来 

他就会有一个默认的属性【scope】

其中存储着它的执行上下文

存储运行上下文,链头全局未运行。

在这个函数还没有被调用执行的时候作用域链头上存储的是全局对象 GO

函数执行 AO存,执行完毕即无痕。

当函数执行的时候 

系统会把 AO 对象存储到作用域链顶头

而对应的 GO 向下移动存到作用域链的第二格
而AO对象执行完毕之后就会立即被清除引用

函数中间套函数,外层链条接内部。

如果函数当中套着函数那么外层的作用域链就会接到内层的作用域链条上

18 js闭包

多层函数内外套,作用链条把控到。

外层执行内定义,定义链条外部起。

内部函数引用值,返回引用到外池。

外层执行丢 OA,返回引用把值追。

结果OA 内层在,此乃闭包原理怪。

多层函数内外套,作用链条把控到。

当多层函数内外嵌套的时候 一定要将作用域链把控住

外层执行内定义,定义链条外部起。

当外层函数执行的时侯 内部函数就会被定义
而内部函数定义的时候他的作用域链
一定是连接着它外部的作用域链的

内部函数引用值,返回引用到外池。

然后将内部函数的引用返回保存到了 外部

外层执行丢 OA,返回引用把值追。

外层函数执行完毕就会剪断对他自己ao对象的引用
但是内部函数定义的时候是把外部函数的AO对象把持着的

结果OA 内层在,此乃闭包原理怪。

结果就是外层函数的 AO 还被内部函数引用着 

还在内部函数的作用域链上

这就是闭包的内在原理

19 js立即执行函数

执行仅限表达式,函数声明勿尝试。

逻辑与或加正负,转换声明表达误。

立即执行将名抛,释放内存初始到。

官方建议括号中,忽略名称运行空。

立即执行若有名,只能内部访问行。

绑定访问难修改,任他翻江又倒海。

执行仅限表达式,函数声明勿尝试。

在js中只有表达式才可以被执行
函数声明是不可以被执行的

逻辑与或加正负,转换声明表达误。

逻辑运算符 正负号 括号 都可以将声明转换成表达式
  false || function test() {
       console.log("立即执行函数");
   }();
   //控制台结果  立即执行函数

   

立即执行将名抛,释放内存初始到。

立即执行函数的名称外界是访问不到的
他执行完毕之后就会立即消失 释放内存

官方建议括号中,忽略名称运行空。

(function(){}()) 官方建议的语法 运行完毕之后即销毁

立即执行若有名,只能内部访问行。

如果这个立即执行函数有名字的话那么他的名字只能这个函数内部访问才可以

绑定访问难修改,任他翻江又倒海。

而且这个名称是被系统绑定了的 不管你如何操作这个名称变量它都不会被修改



20 js对象

对象定义字面量,属性方法逗号放。

系统提供对象新,外部方法和属性。

对象函数自定义,属性赋值分号记。

对应属性增查改,删除关键文字在。

对象定义字面量,属性方法逗号放。

对象定义方式一 字面量
var obj = {
       name: "cheng",
       age: 30,
       eat: function() {
           console.log(this);
       }
   }

系统提供对象新,外部方法和属性。

系统提供的构造函数


对象函数自定义,属性赋值分号记。

 //自定义构造函数
   function Person() {
       this.name = "cheng";
       this.age = 20;
       this.eat = function() {
           console.log("自定义构造函数");
       }
   }
   var obj = new Person();

对应属性增查改,删除关键文字在。

 //自定义构造函数
   function Person() {
       this.name = "cheng";
       this.age = 20;
       this.eat = function() {
           console.log("自定义构造函数");
       }
   }
   var obj = new Person();

   delete obj.eat; //删除对象中eat这个属性

6c09a7a90f120dfb06b426e3af472852.gif

今天的知识点就分享先到这里,【JS学习口诀】还会持续更新~

在学习新口诀的同时,也不要忘记复习往期知识点,喜欢的话点个【在看】噢~后续还会有一系列干货分享活动,点【关注】,加星标,不迷路!

往期Html、css口诀,可在【自定义菜单】中查阅学习哦!

我们下期见!

RECOMMEND

推荐阅读 fc2f8c9c09761dc2ef26cf9d6d75b718.png 7c1f84638b5cc23cb2b54d7c10bde5ac.png 93541fb046e78678eae0be7b8e8345e9.png 0af6fd98d86b50be34669df153c61f77.png 027865259497bd9e6b78110c53348a7b.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值