扫码关注官方订阅号
伊谢尔伦 小伙看你根骨奇佳,潜力无限,来学PHP伐。 全部回复(5) 我来回复 PHP中文网2017-04-11 08:59:16 5楼 运算是从左往右的 $("s_scroll_a")返回了个Element实例,tag是你自己定义的函数,这俩半毛钱关系都没有,当然不能用链式调用。 想要实现你这个东西的链式调用,你需要封装个类,然后把tag函数放到类的原型方法中。 赞 +0 添加回复 伊谢尔伦 回复 大家讲道理2017-04-11 08:59:16 4楼 链式调用的根本在于上一个函数的返回值有下一个要调用的方法,依次类推。 比较常见做法是自己写个类来封装数据,然后提供一堆处理这个数据的方法,每个(或大部分)方法都返回 this,这样就能链式调用了。 你要做的事情 jQuery 或者 Zepto 都已经封装得很好了,直接用吧。有兴趣就去研究下它们的源码。 赞 +0 添加回复 伊谢尔伦 回复 天蓬老师2017-04-11 08:59:16 3楼 这两个函数有联系吗?没看懂你想做什么 赞 +0 添加回复 伊谢尔伦 回复 怪我咯2017-04-11 08:59:16 2楼 推荐一个我看过的jquery 的源码解析。。。jQuery 2.0.3 源码分析core - 整体架构里面有对jquery的分析,就有无new创建和链式调用的解释 赞 +0 添加回复 伊谢尔伦 回复 黄舟2017-04-11 08:59:16 1楼 问题解决 试试加上这句:document.getElementById(element).tag = tag; 例如: function $(element){ document.getElementById(element).tag = tag; return document.getElementById(element); } 实现链式调用 var _document = window.document; vDom = function (element) { return new vDom.prototype.init(element); } vDom.prototype = { tag : function (element) { return _document.getElementsByTagName(element); } } var init = vDom.prototype.init = function (element) { return this; } init.prototype = vDom.prototype; alert(vDom("s_scroll_a").tag("img").length); 赞 +0 添加回复 伊谢尔伦 回复
小伙看你根骨奇佳,潜力无限,来学PHP伐。
运算是从左往右的
$("s_scroll_a")返回了个Element实例,tag是你自己定义的函数,这俩半毛钱关系都没有,当然不能用链式调用。
$("s_scroll_a")
Element
tag
想要实现你这个东西的链式调用,你需要封装个类,然后把tag函数放到类的原型方法中。
链式调用的根本在于上一个函数的返回值有下一个要调用的方法,依次类推。
比较常见做法是自己写个类来封装数据,然后提供一堆处理这个数据的方法,每个(或大部分)方法都返回 this,这样就能链式调用了。
this
你要做的事情 jQuery 或者 Zepto 都已经封装得很好了,直接用吧。有兴趣就去研究下它们的源码。
这两个函数有联系吗?没看懂你想做什么
推荐一个我看过的jquery 的源码解析。。。jQuery 2.0.3 源码分析core - 整体架构里面有对jquery的分析,就有无new创建和链式调用的解释
试试加上这句:document.getElementById(element).tag = tag;
例如:
function $(element){ document.getElementById(element).tag = tag; return document.getElementById(element); }
var _document = window.document; vDom = function (element) { return new vDom.prototype.init(element); } vDom.prototype = { tag : function (element) { return _document.getElementsByTagName(element); } } var init = vDom.prototype.init = function (element) { return this; } init.prototype = vDom.prototype; alert(vDom("s_scroll_a").tag("img").length);
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
运算是从左往右的
$("s_scroll_a")返回了个Element实例,tag是你自己定义的函数,这俩半毛钱关系都没有,当然不能用链式调用。想要实现你这个东西的链式调用,你需要封装个类,然后把
tag函数放到类的原型方法中。链式调用的根本在于上一个函数的返回值有下一个要调用的方法,依次类推。
比较常见做法是自己写个类来封装数据,然后提供一堆处理这个数据的方法,每个(或大部分)方法都返回
this,这样就能链式调用了。你要做的事情 jQuery 或者 Zepto 都已经封装得很好了,直接用吧。有兴趣就去研究下它们的源码。
这两个函数有联系吗?没看懂你想做什么
推荐一个我看过的jquery 的源码解析。。。jQuery 2.0.3 源码分析core - 整体架构
里面有对jquery的分析,就有无new创建和链式调用的解释
问题解决
试试加上这句:document.getElementById(element).tag = tag;
例如:
实现链式调用