原型继承的小案例

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .current{
            background-color: greenyellow;
        }
    </style>
</head>
<body>
<script>
    var element = {
        /*追加dom元素到node节点中*/
        appendTo: function (node) {
            /*判断是否是dom元素*/
            if(node.nodeType){
                /*如果是使用node元素追加*/
                node.appendChild(this.Dom);
            }else if(node.Dom){
                /*如果传入的DivTag对象 使用node.Dom*/
                node.Dom.appendChild(this.Dom);
            }
            return this;
        },
        add: function (node) {
            /*判断是否是dom元素*/
            if(node.nodeType){
                /*如果是使用node元素追加*/
                this.Dom.appendChild(node);
            }else if(node.Dom){
                /*如果传入的DivTag对象 使用node.Dom*/
                this.Dom.appendChild(node.Dom)
            }
            return this;
        },
        css: function (option) {
            /*判断option是否存在是否为对象*/
            if(!option || typeof option != ‘object‘) return false;
            for(var key in option){
                /*设置样式*/
                this.Dom.style[key] = option[key];
            }
            return this;
        },
        html: function (str) {
            /*判断str是否为字符串*/
            if(typeof str != ‘string‘) return false;
            /*添加文本*/
            this.Dom.innerHTML = str;
            return this;
        },
        attr: function (name,value) {
            /*判断value是否存在*/
            if(value){
                /*如果存在设置属性*/
                this.Dom.setAttribute(name,value);
            }else{
                /*如果不存在获取属性*/
                return this.Dom.getAttribute(name);
            }
            return this;
        }

    }
    /*创建标签函数*/
    var createElement = function (tagName) {
        this.Dom = document.createElement(tagName);
    }
    /*设置原型对象*/
    createElement.prototype = element;
    /*创建对象链式调用方法*/
    new createElement(‘div‘).appendTo(document.body).html(‘我是标签‘).css({
        color:‘red‘
    }).attr(‘class‘,‘current‘);

</script>
</body>
</html>
时间: 2024-10-24 12:30:13

原型继承的小案例的相关文章

JavaScript中易犯的小错误-------常见错误七:原型继承问题

JavaScript中易犯的小错误-------常见错误七:原型继承问题 很大一部分的js开发者都不能完全掌握原型的继承问题.下面具一个例子来说明:BaseObject = function(name) {if(typeof name !== "undefined"){ this.name = name; }else{ this.name = 'default' } };这段代码看起来很简单.如果你有name值,则使用它.如果没有,则使用 ‘default’:var firstObj

javascript基础集锦_Json——原型继承(十)

在传统的基于Class的语言如Java.C++中,继承的本质是扩展一个已有的Class,并生成新的Subclass. 由于这类语言严格区分类和实例,继承实际上是类型的扩展.但是,JavaScript由于采用原型继承,我们无法直接扩展一个Class,因为根本不存在Class这种类型. 但是办法还是有的.我们先回顾Student构造函数: function Student(props) { this.name = props.name || 'Unnamed'; } Student.prototyp

Java小案例(行星移动)

Java小案例 行星移动:参考:三百集 使用软件:idea2017,java 1,图片集:这里  (idea图片源放在target目录下,才能访问到),建议从小往上看... 2,定义MyFrame package my.university; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class MyFrame extends Frame {

JS中的原型继承和多重继承

概念:1原型继承是创建新类型对象----子类型,子类型基于父类型,子类型拥有父类型所有的属性和方法(从父类型继承得到),然后修改其中的部分内容或者添加新的内容.继承最好在子类型模型可以被视为父类型对象的时候使用.   2从多个父类型中派生出一个对象类型称为多重继承. 原型继承: 使用new关键字和构造函数的prototype属性都是定义类型的特定方式,这些是我们到目前为止一直使用的,对于简单的对象,这种方式还是很好的,但是当程序过度使用继承时,这种创建对象的方法很快就显得笨拙了.所以增加一些函数

业务建模 之 闲话&#39;闭包&#39;与&#39;原型继承&#39;

[引言]在业务建模中,我们经常遇到这样一种情况:“原型”对象负责实现业务的基本诉求(包括:有哪些属性,有哪些函数以及它们之间的关系),以“原型”对象为基础创建的“子对象”则实现一些个性化的业务特性,从而方便的实现业务扩展.最常见的搞法是: 1. 定义一个‘构造函数’,在其中实现属性的初始化,例如:var Person = function( ){};    //函数体中可以进行一些变量的初始化. 2. 再设置该函数的prototype成员,例如:Person.prototype = { goto

css小案例:导航栏特效

css小案例:导航栏特效,实现如下图所示效果: 首先可以将html代码写出: 1 <nav class="cl-effect-1"> 2 <a href="#">Umbrella</a> 3 <a href="#">Ineffable</a> 4 <a href="#">Lilt</a> 5 <a href="#"&g

JavaScript的原型继承

JavaScript是一门面向对象的语言.在JavaScript中有一句很经典的话,万物皆对象.既然是面向对象的,那就有面向对象的三大特征:封装.继承.多态.这里讲的是JavaScript的继承,其他两个容后再讲. JavaScript的继承和C++的继承不大一样,C++的继承是基于类的,而JavaScript的继承是基于原型的. 现在问题来了. 原型是什么? 原型我们可以参照C++里的类,同样的保存了对象的属性和方法.例如我们写一个简单的对象 function Animal(name) { t

JS面向对象组件 -- 继承的其他方式(类式继承、原型继承)

继承的其他形式: •类式继承:利用构造函数(类)继承的方式 •原型继承:借助原型来实现对象继承对象 类 : JS是没有类的概念的 , 把JS中的构造函数看做的类 要做属性和方法继承的时候,要分开继承. function Aaa(){ //父类 this.name = "小明"; } Aaa.prototype.showName = function(){ alert( this.name ); }; function Bbb(){ //子类 } Bbb.prototype = new

js面向对象之继承-原型继承

//animal 父类 超类 var Animal = function(name) { this.name = name; this.sayhello = function() { alert("HI,我是" + this.name + ",你愿意和我做朋友吗?"); }; }; Animal.prototype.shout = function() { alert(this.name + ",正在叫!"); }; Animal.prototy