关于delete

关于delete

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>关键词</title>

</head>

<body>

<script>

//instance

// var arr = new Array();

// alert(arr instanceof Object);

//delete

function fun(){

this.name = "zhangsan";

this.say = function(){

alert("姓名:"+this.name);

}

}

var obj = new fun();

alert(obj.name);

delete obj.name;

alert(obj.name);  //undefined

obj.say();

delete obj.say;

obj.say();

// var demo = "lisi";

// alert(demo);

// delete demo;  //删除不了变量

//delete不能删除原型链中的属性和变量

alert(demo);

</script>

</body>

</html>

报错了,而且25行delete obj.say()加括号和不加括号时为什么会有区别?我看视频里老师没加括号时也可以运行呀

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕夭夭 2019-06-12 09:37:02

@“大鸟先生”同学,你提供的代码也是报错的哦,建议重新测试一下,按F12可以查看到报错信息的,如下:

http://img1.sycdn.imooc.com//climg/5d0057390001fa8c11050261.jpg

祝学习愉快 !

好帮手慕夭夭 2019-05-30 17:49:40

你好同学,视频中也是加括号的哦,如下:

http://img1.sycdn.imooc.com//climg/5cefa66100011bf205400145.jpg

因为say是一个方法,方法在调用的时候要加括号,如果不加括号那么就和上面的name一样,表示一个属性,所以会报错。

祝学习愉快 ,望采纳。

  • 我试了一下这样,不会报错啊,而且把say方法删除了,弹不出来。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> // 补充代码 </script> </body> </html> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> function fun(){ this.name = 'zhangsan '; this.say = function(){ alert(this.name); } } var obj = new fun(); obj.say(); delete obj.say; obj.say(); </script> </body> </html>
    2019-06-11 20:45:48
  • 同学你好,老师在上面回复了哦
    2019-06-12 09:37:37
  • 我的代码没有报错,我又在试了一下。我这么理解的,delete无法删除方法,只能删除属性,这句话没错,我的delete obj.say;就是删除say下面的方法,因为方法也是一个特殊的属性,而delete obj.say()是不能执行的,因为不能删除方法。<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> var obj = { name:'zhangsan ', say:function(){ alert(this.name) } } obj.say(); delete obj.say; obj.say(); </script> </body> </html>
    2019-06-12 13:18:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师