JS中级 - 面向对象1(this,Object ,工厂方式,new )


面向对象三要素:

封装
继承
多态

1.this 详解,事件处理中this的本质#

  • window
  • this —— 函数属于谁
	<script type="text/javascript">
	
	var arr=[12,65,87];
	//this:当前的方法,属于谁
	arr.show =function (argument) {
		// body...
		console.log(this);      //[12,65,87]
	}
	arr.show();

 function show(){
 		console.log(this);      //window
	}
	show();
	
	</script>

2.Object 的使用:###

<script type="text/javascript">
var obj = new Object();
obj.aaa = 12;
obj.show = function (argument) {
	console.log(this.aaa); //12
}
obj.show();
</script>

3.工厂方式:#

    <script type="text/javascript">
    function createPerson(name, sex) {
        var obj = new Object();
        obj._name = name;
        obj._sex = sex;

        obj.showName = function() {
            console.log('我的名字叫:' + this._name);
        }
        obj.showSex = function() {
            console.log('我是' + this._sex + '的');
        }
        return obj;
    }

    var p1 = createPerson('唐三', '男');
    p1.showName();
    p1.showSex();

    var p2 = createPerson('唐九妹', '女');
    p2.showName();
    p2.showSex();
    </script>

工厂方式的问题:
1.没有new
2.每个对象都有一套自己的函数 —— 浪费资源

4.new的情况:#

    <script type="text/javascript">
    function createPerson(name, sex) {
        //var this = Object();
        this._name = name;
        this._sex = sex;

        this.showName = function() {
            console.log('我的名字叫:' + this._name);
        }
        this.showSex = function() {
            console.log('我是' + this._sex + '的');
        }
        //return this;
    }

    var p1 = new createPerson('唐三', '男'); //new 的情况下
    p1.showName();
    p1.showSex();

    var p2 = new createPerson('唐九妹', '女');
    p2.showName();
    p2.showSex();
    </script>

作者:【唐】三三

出处:https://www.cnblogs.com/tangge/p/7628121.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   【唐】三三  阅读(525)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示