JavaScript原型、函数伪装(apply,call)、继承

简介: <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>原型与继承</title>    <script type="text/javascript">        /*         * 组合的方



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>原型与继承</title>
    <script type="text/javascript">
        /*
         * 组合的方式是属性通过伪造的方式实现,方法通过原型链的方式实现,注意内存模型
         *
         *
         * */
        function Parent(name) {
            this.name = name;
            this.color = ["red", "blue"];

        }

        Parent.prototype.ps = function () {

            alert(this.name + "[" + this.color + "]");
        }

        function Child(name, age) {
            this.age = age;
            Parent.call(this, name);


        }

        Child.prototype = new Parent();
        Child.prototype.say = function () {
            alert(this.name + "," + this.age + "[" + this.color + "]");
        }

        var c1 = new Child("Leon", 22);
        c1.color.push("green");
        c1.say();
        c1.ps();
        var c2 = new Child("Ada", 23);
        c2.say();
    </script>
</head>
<body>

</body>
</html>


通过原型的方式创建对象:

/*
*使用基于原型的方式创建可以将属性和方法设置为Person专有的,不能通过windows来调用
*
* */

function Person(){

}

Person.prototype.name="Leon";
Person.prototype.age=23;
Person.prototype.say=function(){

   alert(this.name+","+this.age);
}
var p1=new Person();
p1.say();
say();
//以下方法可以检测出p1 是否有_prop_隐藏属性指向Person的原型
alert(Person.prototype.isPrototypeOf(p1));


wKiom1Z-RbiCHRZ6AACUKytDQ5E079.png

参考视频:原型内存模型

http://tianxingzhe.blog.51cto.com/3390077/1728556


本文出自 “点滴积累” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1728556

目录
相关文章
|
3天前
|
JavaScript 前端开发
Javascript如何实现继承?
【10月更文挑战第24天】JavaScript 中实现继承的方式有很多种,每种方式都有其优缺点和适用场景。在实际开发中,我们需要根据具体的需求和情况选择合适的继承方式,以实现代码的复用和扩展。
|
11天前
|
JavaScript 前端开发
JavaScript 函数语法
JavaScript 函数是使用 `function` 关键词定义的代码块,可在调用时执行特定任务。函数可以无参或带参,参数用于传递值并在函数内部使用。函数调用可在事件触发时进行,如用户点击按钮。JavaScript 对大小写敏感,函数名和关键词必须严格匹配。示例中展示了如何通过不同参数调用函数以生成不同的输出。
|
11天前
|
JavaScript 前端开发
JS高级—call(),apply(),bind()
【10月更文挑战第17天】call()`、`apply()`和`bind()`是 JavaScript 中非常重要的工具,它们为我们提供了灵活控制函数执行和`this`指向的能力。通过合理运用这些方法,可以实现更复杂的编程逻辑和功能,提升代码的质量和可维护性。你在实际开发中可以根据具体需求,选择合适的方法来满足业务需求,并不断探索它们的更多应用场景。
6 1
|
13天前
|
存储 JavaScript 前端开发
JS函数提升 变量提升
【10月更文挑战第6天】函数提升和变量提升是 JavaScript 语言的重要特性,但它们也可能带来一些困惑和潜在的问题。通过深入理解和掌握它们的原理和表现,开发者可以更好地编写和维护 JavaScript 代码,避免因不了解这些机制而导致的错误和不一致。同时,不断提高对执行上下文等相关概念的认识,将有助于提升对 JavaScript 语言的整体理解和运用能力。
|
22天前
|
JavaScript 前端开发
js教程——函数
js教程——函数
21 4
|
21天前
|
存储 JavaScript 前端开发
js中函数、方法、对象的区别
js中函数、方法、对象的区别
14 2
|
24天前
|
JavaScript 前端开发 Java
【javaScript数组,函数】的基础知识点
【javaScript数组,函数】的基础知识点
22 5
|
23天前
|
JavaScript 前端开发
Node.js 函数
10月更文挑战第5天
19 3
|
26天前
|
JavaScript 前端开发
js 中call()和apply()
js 中call()和apply()
27 1
|
16天前
|
存储 JavaScript 前端开发
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
13 0