Javascript prototype 属性探秘

javascript 对象都有一个prototype属性,prototype 主要用在为对象动态增加属性。总结了一下常见使用方式!

1.直接修改对象属性

var Anim = function () {
}
    
Anim.prototype.start = function () {
     console.log("start");
}
        
Anim.prototype.stop = function () {
    console.log("stop");
}
使用方式

var myAnim = new Anim();
myAnim.start();
myAnim.stop();

2.通过配置(setting)的形式

使用过ExtJs的童鞋肯定知道,组件通常有一个配置对象。

var Anim = function () {
}
    
Anim.prototype = {
    start: function () {
         console.log("start1");
    },
    stop: function () {
         console.log("stop1");
    }
};
使用方式同上

3.先声明后定义式

记得jquery里面的bind方法吗?通常是$("#id").bind("click",function(){});这种形式出现在世人面前,那这是如何做到的呢?

Function.prototype.method = function (name, fn) {
    this.prototype[name] = fn;
    return this;
}

Anim.method("start", function () {
    console.log("start")
});

Anim.method("stop", function () {
    console.log("stop")
});
使用方法同上,是不是觉得一模一样的?

注意:上述方式可以采用链式编程(想起jquery里面的链式编程了嘛?)

Anim.
    method("start", function () {
         console.log("start")
    }).
    method("stop", function () {
         console.log("stop")
    });
使用方式亦同上!

4.即声明即用

(function (a, b) { alert(a * b); })(3, 4);

5.实例专有属性

var myAnim = new Anim();
myAnim.start();
myAnim.stop();
myAnim.display = function () {
    console.log("display");
}

myAnim.display();

var hisAnim = new Anim();
hisAnim.display();











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScriptprototype和constructor是JavaScript中的两个概念,用于实现对象的继承和构造。 prototype(原型)是JavaScript中每个对象都有的一个属性,它指向该对象的原型(即父对象)。每个函数都有一个prototype属性,它是一个指向该函数的原型对象的指针。通过修改prototype,可以给该函数的实例对象添加新的属性和方法。这样,函数的实例对象就可以共享这些属性和方法,从而实现了对象的继承。 constructor(构造函数)是一个指向创建该对象的函数的指针。每个对象都有一个constructor属性,它指向该对象的构造函数。通过Constructor属性,我们可以追踪一个对象是由哪个构造函数创建的,以便在需要时通过构造函数进行实例化。 通过prototype和constructor的结合使用,可以在JavaScript中实现对象的继承和构造。具体的步骤如下: 1. 创建一个构造函数,并定义其原型对象中的属性和方法。 2. 使用new关键字实例化一个对象。 3. 通过对象的constructor属性,可以确定对象是由哪个构造函数创建的。 4. 进一步修改构造函数的原型对象,可以为所有实例对象添加新的属性和方法。 JavaScript中的原型继承和构造函数是基于原型链的概念。通过在对象之间共享属性和方法,可以实现更高效的内存使用和代码复用。prototype和constructor提供了一种灵活而强大的方式来创建和继承对象,它们是JavaScript中非常重要的概念。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值