小编bfa*_*tto的帖子

当函数重新定义自身时,原型会发生什么?

我在Stoyan Stefanov 的JavaScript Patterns一书中看到了以下代码(编辑以消除额外的脂肪):

function Universe() {
    var instance = this;
    Universe = function() {
        return instance;
    }
}

Universe.prototype.nothing = true;
var uni = new Universe();
Universe.prototype.everything = true;
var uni2 = new Universe();

uni.nothing;     // true
uni2.nothing;    // true, but I was expecting undefined
uni.everything;  // undefined
uni2.everything; // undefined, but I was expecting true
Run Code Online (Sandbox Code Playgroud)

我期望nothing被分配到原始函数的原型,并被everything分配给闭包的原型(因为第二次赋值在重新定义之后发生).然而,输出结果表明发生了奇怪的事情,而这本书并没有解释它.我也注意到:

  1. Universe.prototype 正如我所料,在重新定义函数后,它会指向不同的对象.
  2. 重新定义后创建的其他实例仍然将原始原型对象作为其原型__proto__.这就是我不明白的地方.

有人可以解释一下吗?

javascript prototype

4
推荐指数
1
解决办法
121
查看次数

JavaScript .style.display?

我想从 HTML 元素中获取 display 属性。当我编写内联 CSS 时,它可以工作,但如果我使用一个类,它就不行。

这有效:

<p id="p1" style="display:none;">This is some text.</p>?
<script>alert(document.getElementById("p1").style.display);</script>
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/bwzAN/2/

这不起作用:

<style>.deneme{ display: none; }?</style>
<p id="p1" class="deneme">This is some text.</p>?
<script>alert(document.getElementById("p1").style.display);</script>
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/bwzAN/7/

为什么?是否有可能使第二种情况表现得像第一种情况?我该如何解决?

javascript

3
推荐指数
1
解决办法
5508
查看次数

将单引号附加到字符

我有一个字符串

var test = "1,2,3,4";
Run Code Online (Sandbox Code Playgroud)

我需要将单引号(' ')附加到此字符串的所有字符,如下所示:

var NewString = " '1','2','3','4' ";
Run Code Online (Sandbox Code Playgroud)

请给我任何建议.

javascript

3
推荐指数
2
解决办法
137
查看次数

将两个json结果传递给函数

我需要进行两个不同的ajax调用,并将json数据传递给另一个函数.我怎么能使用下面的ajax调用格式呢?

$.ajax({ 
    url:'',
    type:'GET',
    dataType: 'json',
    success: callme
}); 

$.ajax({ 
    url:'',
    type:'GET',
    dataType: 'json',
    success: callme
});

function callme(JSON1,JSON2){
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery

3
推荐指数
1
解决办法
119
查看次数

如何在 JavaScript 中按类获取元素并将 aria-checked="false" 更改为 "true"?

我想在页面上选择多个类,并更改aria-checked="false"aria-checked="true"。这是我现在使用的脚本:

elms=document.getElementsByClassName("d-va-p a-f-e");
for (i=0;i<elms.length;i++){
    if(elms[i].getAttribute("aria-checked")="false")
        elms[i].getAttribute("aria-checked")="true"
};
Run Code Online (Sandbox Code Playgroud)

源代码如下。该课程是“d-va-p afe”。

<div class="d-va-p a-f-e" style="-webkit-user-select: none;" role="option" tabindex="-1" aria-checked="false" id=":89">
    <div class="a-f-e" style="-webkit-user-select: none;">
        <div class="d-va-p-Fe a-f-e" style="-webkit-user-select: none;">
            <img src="https://lh4.googleusercontent.com/-FxDBvNDkbj4/AAAAAAAAAAI/AAAAAAAAAAA/q4f7Fc7OF6A/s48-c/photo.jpg" class="d-va-p-Z a-f-e">
        </div>
        <div class="a-f-e d-va-p-yda" style="-webkit-user-select: none;">
            <div class="d-va-p-Ec a-f-e" style="-webkit-user-select: none;">Herb Smith</div>
        </div>
    </div>
    <div class="d-va-p-iI-oc" style="-webkit-user-select: none;">
        <span class="a-f-e d-J-Eb-v-YA-Me" style="-webkit-user-select: none;"></span>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript getelementbyid getattribute

3
推荐指数
1
解决办法
9367
查看次数

严格模式下的全局对象访问

请考虑以下代码段:

var global = (function(){
    return this;
}());
Run Code Online (Sandbox Code Playgroud)

当执行global时将指向window浏览器中的对象.
但这在严格模式下不起作用.为什么?

javascript ecmascript-5

3
推荐指数
1
解决办法
1581
查看次数

"迭代器绑定到上下文对象."

Underscore.js文档说:

_.each(list,iterator,[context])

迭代元素列表,依次产生迭代器函数.迭代器绑定到上下文对象(如果传递了一个).每个迭代器调用都使用三个参数调用:(element,index,list).如果list是JavaScript对象,则迭代器的参数将是(value,key,list).如果存在,则委托原生forEach函数.

_.each([1, 2, 3], alert);
=> alerts each number in turn...
_.each({one : 1, two : 2, three : 3}, alert);
=> alerts each number value in turn...
Run Code Online (Sandbox Code Playgroud)

上面的粗体文字是什么意思?有人可以提供一个可以解释它的例子吗?

javascript underscore.js

3
推荐指数
1
解决办法
301
查看次数

使警报对话框背景透明

我正在Android Jelly Beans OS上创建一个警告对话框.一切都运作良好,但我想要的是,而不是警报对话框的黑色背景,我想要一个透明的背景.我在stackoverflow上阅读了很多文章和用户的问题,但没有一个能帮助我.

这是我的代码:

AlertDialog.Builder builder =  new AlertDialog.Builder(this, R.style.CustomAlertDialog);
    builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog1, int which) {
            gActivityResult = REQUEST_PICK_CONTACT;
            onResume();
            return;
        } }); 
    builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog1, int which) {
            return;
        } }); 
    View view = getLayoutInflater().inflate(R.layout.alert_dialog, null);
    builder.setTitle(R.string.gender_age);
    builder.setInverseBackgroundForced(false);
    builder.setView (view);


    dialog = builder.create ();
Run Code Online (Sandbox Code Playgroud)

这是我的CustomAlertDialog,它在res/values/styles.xml中定义

<style name="CustomAlertDialog" parent="@android:style/Theme.Dialog">
    <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    <item name="android:windowFrame">@null</item>
    <item name="android:windowIsFloating">true</item> 
    <item …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-alertdialog android-4.2-jelly-bean

3
推荐指数
1
解决办法
2万
查看次数

将click事件绑定到类中的方法

在我的对象的构造函数中,我创建了一些span标记,我需要将它们引用到同一对象的方法中.

这是我的代码示例:

$(document).ready(function(){
    var slider = new myObject("name");
});

function myObject(data){
    this.name = data;

    //Add a span tag, and the onclick must refer to the object's method
    $("body").append("<span>Test</span>");
    $("span").click(function(){
        myMethod(); //I want to exec the method of the current object
    }); 


    this.myMethod = myMethod;
    function myMethod(){
        alert(this.name); //This show undefined
    }

}
Run Code Online (Sandbox Code Playgroud)

使用此代码调用该方法,但它不是对象的引用(this.name show undefined)如何解决该问题?

非常感谢!

javascript jquery binding class click

3
推荐指数
1
解决办法
1331
查看次数

MySQL中的索引是否有FIND_IN_SET?

我知道将列表存储为字符串并不明智,但我必须处理它以导出一些存储的数据.我也知道FIND_IN_SET函数,它返回列表中某个字符串的索引:

SELECT FIND_IN_SET('bar', 'foo,bar,baz');
-- selects 2
Run Code Online (Sandbox Code Playgroud)

是否有任何内置函数(或函数组合)来获取列表的特定索引中的字符串?我正在寻找这样的东西:

SELECT IN_SET_AT_INDEX(2, 'foo,bar,baz');
-- selects 'bar'
Run Code Online (Sandbox Code Playgroud)

我想避免像分裂一样的函数,如果可能的话,使列表成为一个单独的表.

mysql sql string

3
推荐指数
1
解决办法
2115
查看次数