标签: extend

3119
推荐指数
17
解决办法
284万
查看次数

Ruby中包含和扩展有什么区别?

刚刚开始关注Ruby元编程.mixin/modules总是让我困惑.

  • include:将指定模块方法中的混合作为目标类中的实例方法
  • extend:将指定的模块方法混合为目标类中的类方法

那么主要区别在于这还是潜伏着更大的龙? 例如

module ReusableModule
  def module_method
    puts "Module Method: Hi there!"
  end
end

class ClassThatIncludes
  include ReusableModule
end
class ClassThatExtends
  extend ReusableModule
end

puts "Include"
ClassThatIncludes.new.module_method       # "Module Method: Hi there!"
puts "Extend"
ClassThatExtends.module_method            # "Module Method: Hi there!"
Run Code Online (Sandbox Code Playgroud)

ruby module include extend

397
推荐指数
4
解决办法
8万
查看次数

在python中将一个列表插入另一个列表的语法是什么?

给出两个列表:

x = [1,2,3]
y = [4,5,6]
Run Code Online (Sandbox Code Playgroud)

语法是什么:

  1. 插入xy这样y现在看起来像[1, 2, 3, [4, 5, 6]]
  2. 插入的所有项目x进入y,使得y现在的样子[1, 2, 3, 4, 5, 6]

python list append extend

180
推荐指数
4
解决办法
24万
查看次数

Rails扩展ActiveRecord :: Base

我已经做了一些关于如何扩展ActiveRecord:Base类的阅读,所以我的模型会有一些特殊的方法.扩展它的简单方法是什么(逐步教程)?

ruby-on-rails extend rails-activerecord

160
推荐指数
7
解决办法
6万
查看次数

LESS是否具有"扩展"功能?

SASS有一个叫做的功能@extend,允许选择器继承另一个选择器的属性,但不复制属性(如mixins).

LESS也有这个功能吗?

css sass extend css3 less

89
推荐指数
2
解决办法
6万
查看次数

Javascript:扩展功能

我想要它的主要原因是我想扩展我的初始化函数.

像这样的东西:

// main.js

window.onload = init();
function init(){
     doSomething();
}

// extend.js

function extends init(){
    doSomethingHereToo();
}
Run Code Online (Sandbox Code Playgroud)

所以我想扩展一个函数,比如我在PHP中扩展一个类.

我也想从其他文件扩展它,所以例如我有原始的init函数main.js和扩展函数extended.js.

javascript function extend

85
推荐指数
5
解决办法
12万
查看次数

JavaScript相当于jQuery的extend方法

背景

我有一个将config对象作为参数的函数.在函数内,我也有default对象.这些对象中的每一个都包含基本上用作函数内其余代码的设置的属性.为了防止必须指定config对象中的所有设置,我使用jQuery的extend方法来填充一个新对象,如果未在对象中指定,则使用对象中的settings任何默认值:defaultconfig

var config = {key1: value1};
var default = {key1: default1, key2: default2, key 3: default 3};

var settings = $.extend(default, config);

//resulting properties of settings:
settings = {key1: value1, key2: default2, key 3: default 3};
Run Code Online (Sandbox Code Playgroud)

问题

这很好用,但我想在不需要jQuery的情况下重现这个功能.是否有一个同样优雅(或接近)的方法用普通的'javascript做到这一点?


编辑:非重复的对齐

这个问题与" 如何动态合并两个JavaScript对象的属性? "问题不重复.虽然这个问题只是想创建一个包含来自两个独立对象的所有键和值的对象 - 我特别想要解决如何在两个对象共享一些但不是所有键以及哪个对象将优先的情况下执行此操作(如果存在重复键,则生成的对象的默认值.更具体地说,我想解决使用jQuery的方法来实现这一点,并找到一种没有jQuery的替代方法.虽然这两个问题的许多答案都重叠,但这并不意味着问题本身是相同的.

javascript jquery object extend

85
推荐指数
4
解决办法
5万
查看次数

jQuery.extend和jQuery.fn.extend之间的区别?

我试图理解jquery插件语法,因为我想将两个插件合并为一个.也需要能够停止de间隔或运行多次的闪光灯.

无论如何,这个语法是一样的

jQuery.fn.extend({
    everyTime: function(interval, label, fn, times) {
        return this.each(function() {
            jQuery.timer.add(this, interval, label, fn, times);
        });
    },
    oneTime: function(interval, label, fn) {
        return this.each(function() {
            jQuery.timer.add(this, interval, label, fn, 1);
        });
    },
Run Code Online (Sandbox Code Playgroud)

这个

$.fn.blink = function(options)
    {
Run Code Online (Sandbox Code Playgroud)

因为它看起来像第一个(没有=)是一次设置多个方法的方法.这是正确的吗?当我在这里时,将元素和一些逻辑添加到jquery对象的原因是什么?

jQuery.extend({
    timer: {
        global: [],
        guid: 1,
        dataKey: "jQuery.timer",
Run Code Online (Sandbox Code Playgroud)

(这是来自计时器插件)

syntax jquery plugins extend

82
推荐指数
5
解决办法
6万
查看次数

什么时候实施和扩展?

  • 什么时候应该implement还是extend可以用吗?
  • 什么是现实世界的例子?

它是否正确?

实现似乎是一种强制某类方法存在的方法,并且这些方法函数调用的格式正确.实现不是将变量或"设置"传递给类的方法吗?

预期的现实生活场景:我有一个电子商务平台,其中包含多个支付类,所有支付类都遵循相同的设计.当应该添加新的支付类时,很容易遵循定义的设计interface,从一开始就确保所有的零碎都在那里.

扩展类使扩展(child?)类继承其父类的所有内容,但声明为的方法和变量除外private

预期的现实生活场景:我有一个叫sessions有两个名为sessioncookies和的子类的类databasesessions.sessioncookies并且databasesessions,它们一起从其父会话继承了许多相互配置选项,从而可以轻松更改配置选项以影响各种最终的访客数据存储.

php oop extend

79
推荐指数
2
解决办法
6万
查看次数

扩展jQuery插件的最佳方法

我是一个相当新的jQuery用户,希望扩展现有的jQuery插件,它可以满足我所需要的75%.我试着做这个功课.我在stackoverflow上检查了以下问题:

我已经阅读了 extend方法.然而,所有这些功课让我感到困惑.我正在使用fullcalendar插件,需要修改一些行为以及添加新的事件挂钩.我是否坚持在插件封闭本身中这样做?我错过了一些明显的东西吗

理想情况下,我们可以将代码与插件代码分开,以便进行可能的升级.任何帮助将不胜感激,特别是关于我在哪里错过了关于其他Stack Overflow问题中已经提出的解决方案是否有意义的一些信息或意见的指示.对我来说,他们互相矛盾,我仍然感到困惑.

jquery plugins extend fullcalendar

76
推荐指数
2
解决办法
6万
查看次数